Struct pax_manifest::ExpressionSpecInvocation
source · pub struct ExpressionSpecInvocation {
pub root_identifier: String,
pub escaped_identifier: String,
pub stack_offset: usize,
pub fully_qualified_properties_struct_type: String,
pub fully_qualified_iterable_type: String,
pub is_numeric: bool,
pub is_bool: bool,
pub is_string: bool,
pub property_flags: PropertyDefinitionFlags,
pub nested_symbol_tail_literal: String,
pub is_nested_numeric: bool,
}
Expand description
The spec of an expression invocation
, the necessary configuration
for initializing a pointer to (or copy of, in some cases) the data behind a symbol.
For example, if an expression uses i
, that i
needs to be “invoked,” bound dynamically
to some data on the other side of i
for the context of a particular expression. ExpressionSpecInvocation
holds the recipe for such an invocation
, populated as a part of expression compilation.
Fields§
§root_identifier: String
Identifier of the top-level symbol (stripped of this
or self
) for nested symbols (foo
for foo.bar
) or the
identifier itself for non-nested symbols (foo
for foo
)
escaped_identifier: String
Identifier escaped so that all operations (like .
or [...]
) are
encoded as a valid single identifier
stack_offset: usize
Statically known stack offset for traversing Repeat-based scopes at runtime
fully_qualified_properties_struct_type: String
Type of the containing Properties struct, for downcasting from PaxType.
fully_qualified_iterable_type: String
For symbolic invocations that refer to repeat elements, this is the fully qualified type of each such repeated element
is_numeric: bool
Flags used for particular corner cases of Repeat
codegen
is_bool: bool
§is_string: bool
§property_flags: PropertyDefinitionFlags
Flags describing attributes of properties
nested_symbol_tail_literal: String
Metadata used for nested symbol invocation, like foo.bar.baz
Holds an RIL “tail” string for appending to invocation literal bodies,
like .bar.get().baz.get()
for the nested symbol invocation foo.bar.baz
.
is_nested_numeric: bool
Flag describing whether the nested symbolic invocation, e.g. foo.bar
, ultimately
resolves to a numeric type (as opposed to is_numeric
, which represents the root of a nested type)
Implementations§
source§impl ExpressionSpecInvocation
impl ExpressionSpecInvocation
pub fn is_primitive_string(property_type: &TypeId) -> bool
pub fn is_primitive_bool(property_type: &TypeId) -> bool
pub fn is_numeric(property_type: &TypeId) -> bool
Trait Implementations§
source§impl Clone for ExpressionSpecInvocation
impl Clone for ExpressionSpecInvocation
source§fn clone(&self) -> ExpressionSpecInvocation
fn clone(&self) -> ExpressionSpecInvocation
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more