Trait splr::types::LitIF[][src]

pub trait LitIF {
    fn as_bool(&self) -> bool;
fn from_assign(vi: VarId, p: bool) -> Self;
fn vi(self) -> VarId;
fn is_none(&self) -> bool; }

API for Literal like from_int, from_assign, to_cid and so on.

Required methods

fn as_bool(&self) -> bool[src]

convert to bool

fn from_assign(vi: VarId, p: bool) -> Self[src]

convert VarId to Lit. It returns a positive literal if p is TRUE or BOTTOM.

fn vi(self) -> VarId[src]

convert to var index.

fn is_none(&self) -> bool[src]

return true if it is a valid literal, namely non-zero.

Loading content...

Implementors

impl LitIF for Lit[src]

Examples

use splr::types::*;
assert_eq!(Lit::from(1i32), Lit::from_assign(1 as VarId, true));
assert_eq!(Lit::from(2i32), Lit::from_assign(2 as VarId, true));
assert_eq!(1, Lit::from_assign(1, true).vi());
assert_eq!(1, Lit::from_assign(1, false).vi());
assert_eq!(2, Lit::from_assign(2, true).vi());
assert_eq!(2, Lit::from_assign(2, false).vi());
assert_eq!(Lit::from( 1i32), !Lit::from(-1i32));
assert_eq!(Lit::from(-1i32), !Lit::from( 1i32));
assert_eq!(Lit::from( 2i32), !Lit::from(-2i32));
assert_eq!(Lit::from(-2i32), !Lit::from( 2i32));
Loading content...