pub enum ResolvedType {
Scalar(ResolvedLeafType),
Array {
element: Box<ResolvedType>,
},
Tuple {
elements: Vec<ResolvedType>,
},
Callable {
parameters: Vec<ResolvedType>,
result: Box<ResolvedType>,
},
}Expand description
A resolved recursive CEL type expression.
Variants§
Scalar(ResolvedLeafType)
A resolved scalar leaf.
Array
A resolved array type.
Fields
element: Box<ResolvedType>The resolved element type.
Tuple
A resolved tuple type.
Fields
elements: Vec<ResolvedType>The resolved tuple element types, in source order.
Callable
A callable’s source-ordered parameters and single result.
Fields
parameters: Vec<ResolvedType>The complete parameter types.
result: Box<ResolvedType>The complete result type.
Implementations§
Source§impl ResolvedType
impl ResolvedType
Sourcepub fn into_value_type(self) -> Result<ValueType>
pub fn into_value_type(self) -> Result<ValueType>
Consumes a complete source type and returns its canonical runtime descriptor.
§Errors
Returns an error for unavailable leaf factories or unrepresentable tuple layouts.
- Complexity: O(n) in recursive type nodes.
§Examples
use cel_parser::ResolvedType;
assert!(ResolvedType::Tuple { elements: vec![] }.into_value_type().is_ok());Sourcepub fn complete_value_type(&self) -> Result<ValueType>
pub fn complete_value_type(&self) -> Result<ValueType>
Builds canonical recursive metadata for interpreter storage.
Empty tuples describe source unit, not an opaque host ().
§Errors
Returns an error for missing leaf factories or an unrepresentable tuple layout.
- Complexity: O(n) time and output space for n recursive type nodes.
§Examples
use cel_parser::ResolvedType;
use cel_runtime::value_type::{Nil, ValueRepr};
assert!(ResolvedType::Tuple { elements: vec![] }
.complete_value_type().unwrap().same_shape(&Nil::value_type()));Sourcepub fn display_name(&self) -> String
pub fn display_name(&self) -> String
Returns a human-readable name for this resolved type.
- Complexity: O(n) in the number of nodes in this type tree.
Trait Implementations§
Source§impl Clone for ResolvedType
impl Clone for ResolvedType
Source§fn clone(&self) -> ResolvedType
fn clone(&self) -> ResolvedType
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ResolvedType
impl Debug for ResolvedType
Source§impl From<ResolvedLeafType> for ResolvedType
impl From<ResolvedLeafType> for ResolvedType
Source§fn from(leaf: ResolvedLeafType) -> Self
fn from(leaf: ResolvedLeafType) -> Self
Promotes a registered leaf without changing its identity.