Struct googapis::google::api::expr::v1alpha1::SourceInfo [−][src]
pub struct SourceInfo {
pub syntax_version: String,
pub location: String,
pub line_offsets: Vec<i32>,
pub positions: HashMap<i64, i32>,
pub macro_calls: HashMap<i64, Expr>,
}
Expand description
Source information collected at parse time.
Fields
syntax_version: String
The syntax version of the source, e.g. cel1
.
location: String
The location name. All position information attached to an expression is relative to this location.
The location could be a file, UI element, or similar. For example,
acme/app/AnvilPolicy.cel
.
line_offsets: Vec<i32>
Monotonically increasing list of code point offsets where newlines
\n
appear.
The line number of a given position is the index i
where for a given
id
the line_offsets\[i\] < id_positions\[id\] < line_offsets\[i+1\]
. The
column may be derivd from id_positions\[id\] - line_offsets\[i\]
.
positions: HashMap<i64, i32>
A map from the parse node id (e.g. Expr.id
) to the code point offset
within the source.
macro_calls: HashMap<i64, Expr>
A map from the parse node id where a macro replacement was made to the
call Expr
that resulted in a macro expansion.
For example, has(value.field)
is a function call that is replaced by a
test_only
field selection in the AST. Likewise, the call
list.exists(e, e > 10)
translates to a comprehension expression. The key
in the map corresponds to the expression id of the expanded macro, and the
value is the call Expr
that was replaced.
Trait Implementations
fn merge_field<B>(
&mut self,
tag: u32,
wire_type: WireType,
buf: &mut B,
ctx: DecodeContext
) -> Result<(), DecodeError> where
B: Buf,
Returns the encoded length of the message without a length delimiter.
Encodes the message to a buffer. Read more
Encodes the message to a newly allocated buffer.
Encodes the message with a length-delimiter to a buffer. Read more
Encodes the message with a length-delimiter to a newly allocated buffer.
Decodes an instance of the message from a buffer. Read more
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError> where
Self: Default,
B: Buf,
fn decode_length_delimited<B>(buf: B) -> Result<Self, DecodeError> where
Self: Default,
B: Buf,
Decodes a length-delimited instance of the message from the buffer.
Decodes an instance of the message from a buffer, and merges it into self
. Read more
Decodes a length-delimited instance of the message from buffer, and
merges it into self
. Read more
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
This method tests for !=
.
Auto Trait Implementations
impl RefUnwindSafe for SourceInfo
impl Send for SourceInfo
impl Sync for SourceInfo
impl Unpin for SourceInfo
impl UnwindSafe for SourceInfo
Blanket Implementations
Mutably borrows from an owned value. Read more
Wrap the input message T
in a tonic::Request
pub fn vzip(self) -> V
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more