Struct google_api_proto::google::api::expr::v1alpha1::SourceInfo
source · pub struct SourceInfo {
pub syntax_version: String,
pub location: String,
pub line_offsets: Vec<i32>,
pub positions: BTreeMap<i64, i32>,
pub macro_calls: BTreeMap<i64, Expr>,
pub extensions: Vec<Extension>,
}
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: BTreeMap<i64, i32>
A map from the parse node id (e.g. Expr.id
) to the code point offset
within the source.
macro_calls: BTreeMap<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.
extensions: Vec<Extension>
A list of tags for extensions that were used while parsing or type checking the source expression. For example, optimizations that require special runtime support may be specified.
These are used to check feature support between components in separate implementations. This can be used to either skip redundant work or report an error if the extension is unsupported.
Trait Implementations§
source§impl Clone for SourceInfo
impl Clone for SourceInfo
source§fn clone(&self) -> SourceInfo
fn clone(&self) -> SourceInfo
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for SourceInfo
impl Debug for SourceInfo
source§impl Default for SourceInfo
impl Default for SourceInfo
source§impl Message for SourceInfo
impl Message for SourceInfo
source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
source§fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8>where
Self: Sized,
source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
source§fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8>where
Self: Sized,
source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
. Read moresource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
.source§impl PartialEq for SourceInfo
impl PartialEq for SourceInfo
source§fn eq(&self, other: &SourceInfo) -> bool
fn eq(&self, other: &SourceInfo) -> bool
self
and other
values to be equal, and is used
by ==
.impl StructuralPartialEq for SourceInfo
Auto Trait Implementations§
impl Freeze for SourceInfo
impl RefUnwindSafe for SourceInfo
impl Send for SourceInfo
impl Sync for SourceInfo
impl Unpin for SourceInfo
impl UnwindSafe for SourceInfo
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request