pub enum Expr {
Literal(Span, Value),
Variable(Span, usize, Vec<String>),
UnaryOp(Span, Span, UnaryOp, Box<Expr>),
BinaryOp(Span, Span, BinaryOp, Box<Expr>, Box<Expr>),
TernaryOp(Span, Box<Expr>, Box<Expr>, Box<Expr>),
Slice(Span, Span, Box<Expr>, Box<Expr>, Box<Expr>),
SliceShort(Span, Span, Box<Expr>, Box<Expr>),
Block(Span, Vec<Expr>),
Call(Span, Box<Expr>, Vec<Expr>),
Asm(Span, AstTopLevel),
}
Variants§
Literal(Span, Value)
Variable(Span, usize, Vec<String>)
UnaryOp(Span, Span, UnaryOp, Box<Expr>)
BinaryOp(Span, Span, BinaryOp, Box<Expr>, Box<Expr>)
TernaryOp(Span, Box<Expr>, Box<Expr>, Box<Expr>)
Slice(Span, Span, Box<Expr>, Box<Expr>, Box<Expr>)
SliceShort(Span, Span, Box<Expr>, Box<Expr>)
Block(Span, Vec<Expr>)
Call(Span, Box<Expr>, Vec<Expr>)
Asm(Span, AstTopLevel)
Implementations§
source§impl Expr
impl Expr
pub fn get_static_size( &self, provider: &StaticallyKnownProvider<'_> ) -> Option<usize>
pub fn is_value_statically_known( &self, provider: &StaticallyKnownProvider<'_> ) -> bool
pub fn returned_value_span(&self) -> Span
source§impl Expr
impl Expr
pub fn try_eval_usize<'provider>(&self) -> Option<usize>
pub fn eval_nonzero_usize<'provider>( &self, report: &mut Report, provider: EvalProvider<'provider> ) -> Result<usize, ()>
pub fn eval_bigint<'provider>( &self, report: &mut Report, provider: EvalProvider<'provider> ) -> Result<BigInt, ()>
pub fn eval<'provider>( &self, report: &mut Report, provider: EvalProvider<'provider> ) -> Result<Value, ()>
pub fn eval_with_ctx<'provider>( &self, report: &mut Report, ctx: &mut EvalContext, provider: EvalProvider<'provider> ) -> Result<Value, ()>
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Expr
impl RefUnwindSafe for Expr
impl !Send for Expr
impl !Sync for Expr
impl Unpin for Expr
impl UnwindSafe for Expr
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