pub enum ExprNoExt {
Show 31 variants
Value(CedarValueJson),
Var(Var),
Slot(SlotId),
Not {
arg: Arc<Expr>,
},
Neg {
arg: Arc<Expr>,
},
Eq {
left: Arc<Expr>,
right: Arc<Expr>,
},
NotEq {
left: Arc<Expr>,
right: Arc<Expr>,
},
In {
left: Arc<Expr>,
right: Arc<Expr>,
},
Less {
left: Arc<Expr>,
right: Arc<Expr>,
},
LessEq {
left: Arc<Expr>,
right: Arc<Expr>,
},
Greater {
left: Arc<Expr>,
right: Arc<Expr>,
},
GreaterEq {
left: Arc<Expr>,
right: Arc<Expr>,
},
And {
left: Arc<Expr>,
right: Arc<Expr>,
},
Or {
left: Arc<Expr>,
right: Arc<Expr>,
},
Add {
left: Arc<Expr>,
right: Arc<Expr>,
},
Sub {
left: Arc<Expr>,
right: Arc<Expr>,
},
Mul {
left: Arc<Expr>,
right: Arc<Expr>,
},
Contains {
left: Arc<Expr>,
right: Arc<Expr>,
},
ContainsAll {
left: Arc<Expr>,
right: Arc<Expr>,
},
ContainsAny {
left: Arc<Expr>,
right: Arc<Expr>,
},
IsEmpty {
arg: Arc<Expr>,
},
GetTag {
left: Arc<Expr>,
right: Arc<Expr>,
},
HasTag {
left: Arc<Expr>,
right: Arc<Expr>,
},
GetAttr {
left: Arc<Expr>,
attr: SmolStr,
},
HasAttr(HasAttrRepr),
Like {
left: Arc<Expr>,
pattern: Vec<PatternElem>,
},
Is {
left: Arc<Expr>,
entity_type: SmolStr,
in_expr: Option<Arc<Expr>>,
},
If {
cond_expr: Arc<Expr>,
then_expr: Arc<Expr>,
else_expr: Arc<Expr>,
},
Set(Vec<Expr>),
Record(BTreeMap<SmolStr, Expr>),
Error(AstExprErrorKind),
}Expand description
Serde JSON structure for [any Cedar expression other than an extension function call] in the EST format
Variants§
Value(CedarValueJson)
Literal value (including anything that’s legal to express in the attribute-value JSON format)
Var(Var)
Var
Slot(SlotId)
Template slot
Not
!
Neg
-
Eq
==
NotEq
!=
In
in
Less
<
LessEq
<=
Greater
>
GreaterEq
>=
And
&&
Or
||
Add
+
Sub
-
Mul
*
Contains
contains()
Fields
ContainsAll
containsAll()
Fields
ContainsAny
containsAny()
Fields
IsEmpty
isEmpty()
GetTag
getTag()
Fields
HasTag
hasTag()
Fields
GetAttr
Get-attribute
HasAttr(HasAttrRepr)
has
Like
like
Is
<entity> is <entity_type> in <entity_or_entity_set>
Fields
If
Ternary
Fields
Set(Vec<Expr>)
Set literal, whose elements may be arbitrary expressions (which is why we need this case specifically and can’t just use Expr::Value)
Record(BTreeMap<SmolStr, Expr>)
Record literal, whose elements may be arbitrary expressions (which is why we need this case specifically and can’t just use Expr::Value)
Error(AstExprErrorKind)
Available on crate feature
tolerant-ast only.AST Error node - this represents a parsing error in a partially generated AST
Trait Implementations§
Source§impl BoundedDisplay for ExprNoExt
impl BoundedDisplay for ExprNoExt
Source§impl<'de> Deserialize<'de> for ExprNoExt
impl<'de> Deserialize<'de> for ExprNoExt
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
impl StructuralPartialEq for ExprNoExt
Auto Trait Implementations§
impl Freeze for ExprNoExt
impl RefUnwindSafe for ExprNoExt
impl Send for ExprNoExt
impl Sync for ExprNoExt
impl Unpin for ExprNoExt
impl UnsafeUnpin for ExprNoExt
impl UnwindSafe for ExprNoExt
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
Mutably borrows from an owned value. Read more
Source§impl<T> BoundedToString for Twhere
T: BoundedDisplay,
impl<T> BoundedToString for Twhere
T: BoundedDisplay,
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more