pub enum Expr {
Const(Ternary),
Var(String),
Not(Box<Expr>),
And(Box<Expr>, Box<Expr>),
Or(Box<Expr>, Box<Expr>),
Xor(Box<Expr>, Box<Expr>),
Implies(Box<Expr>, Box<Expr>),
Equiv(Box<Expr>, Box<Expr>),
}Expand description
表达式节点。
Variants§
Const(Ternary)
逻辑常量。
Var(String)
变量引用。
Not(Box<Expr>)
否定 ¬a。
And(Box<Expr>, Box<Expr>)
与 a ∧ b。
Or(Box<Expr>, Box<Expr>)
或 a ∨ b。
Xor(Box<Expr>, Box<Expr>)
强加法 a ⊕ b。
Implies(Box<Expr>, Box<Expr>)
蕴含 a ⇒ b(右结合)。
Equiv(Box<Expr>, Box<Expr>)
等价 a ≡ b。
Implementations§
Source§impl Expr
impl Expr
Sourcepub fn logical_not(a: Expr) -> Self
pub fn logical_not(a: Expr) -> Self
构造否定节点。
命名为 logical_not 而非 not,避免与 std::ops::Not::not 混淆。
Sourcepub const fn is_unknown_const(&self) -> bool
pub const fn is_unknown_const(&self) -> bool
是否为常量 Unknown。
Sourcepub fn node_count(&self) -> usize
pub fn node_count(&self) -> usize
节点总数(用于复杂度统计)。
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Expr
impl<'de> Deserialize<'de> for Expr
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 Eq for Expr
impl StructuralPartialEq for Expr
Auto Trait Implementations§
impl Freeze for Expr
impl RefUnwindSafe for Expr
impl Send for Expr
impl Sync for Expr
impl Unpin for Expr
impl UnsafeUnpin 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