pub enum SpecExpr {
Show 16 variants
ConstInt {
val: i128,
pos: Pos,
},
ConstBitVec {
val: u128,
width: usize,
pos: Pos,
},
ConstBool {
val: bool,
pos: Pos,
},
Var {
var: Ident,
pos: Pos,
},
As {
x: Box<SpecExpr>,
ty: ModelType,
pos: Pos,
},
Field {
field: Ident,
x: Box<SpecExpr>,
pos: Pos,
},
Discriminator {
variant: Ident,
x: Box<SpecExpr>,
pos: Pos,
},
Op {
op: SpecOp,
args: Vec<SpecExpr>,
pos: Pos,
},
Match {
x: Box<SpecExpr>,
arms: Vec<Arm>,
pos: Pos,
},
Let {
defs: Vec<(Ident, SpecExpr)>,
body: Box<SpecExpr>,
pos: Pos,
},
With {
decls: Vec<Ident>,
body: Box<SpecExpr>,
pos: Pos,
},
Macro {
params: Vec<Ident>,
body: Box<SpecExpr>,
pos: Pos,
},
Expand {
name: Ident,
args: Vec<SpecExpr>,
pos: Pos,
},
Pair {
l: Box<SpecExpr>,
r: Box<SpecExpr>,
pos: Pos,
},
Enum {
name: Ident,
variant: Ident,
args: Vec<SpecExpr>,
pos: Pos,
},
Struct {
fields: Vec<FieldInit>,
pos: Pos,
},
}Expand description
An expression used to specify term semantics, similar to SMT-LIB syntax.
Variants§
ConstInt
An operator that matches a constant integer value.
ConstBitVec
An operator that matches a constant bitvector value.
ConstBool
An operator that matches a constant boolean value.
Var
As
Field
Struct field access.
Discriminator
Discriminator is a predicate that tests the variant of an enum value.
Op
An application of a type variant or term.
Match
Enum pattern matching.
Let
Let bindings.
With
Introduce new uninitialized variables.
Macro
Inline macro definition, or lambda.
Expand
Macro expansion.
Pair
Pairs, currently used for switch statements.
Enum
Construct enum variant.
Struct
Construct struct value.
Implementations§
Trait Implementations§
impl Eq for SpecExpr
impl StructuralPartialEq for SpecExpr
Auto Trait Implementations§
impl Freeze for SpecExpr
impl RefUnwindSafe for SpecExpr
impl Send for SpecExpr
impl Sync for SpecExpr
impl Unpin for SpecExpr
impl UnsafeUnpin for SpecExpr
impl UnwindSafe for SpecExpr
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