logic_form/
assign.rs

1use crate::{Lbool, Lit, Var, VarMap};
2
3#[derive(Default)]
4pub struct VarAssign {
5    v: VarMap<Lbool>,
6}
7
8impl VarAssign {
9    #[inline]
10    pub fn reserve(&mut self, var: Var) {
11        self.v.reserve(var)
12    }
13
14    #[inline]
15    pub fn v(&self, lit: Lit) -> Lbool {
16        Lbool(self.v[lit].0 ^ (!lit.polarity() as u8))
17    }
18
19    #[inline]
20    pub fn set(&mut self, lit: Lit) {
21        self.v[lit] = Lbool(lit.polarity() as u8)
22    }
23
24    #[inline]
25    pub fn set_none(&mut self, var: Var) {
26        self.v[var] = Lbool::NONE
27    }
28}