smt_scope/parsers/z3/
inter_line.rs1#[cfg(feature = "mem_dbg")]
2use mem_dbg::{MemDbg, MemSize};
3
4#[cfg_attr(feature = "mem_dbg", derive(MemSize, MemDbg))]
5#[cfg_attr(feature = "mem_dbg", copy_type)]
6#[derive(Debug, Default, Clone, Copy)]
7pub(super) struct InterLine {
8 prev: Data,
9 curr: Data,
10}
11
12impl InterLine {
13 pub fn newline(&mut self) {
14 self.prev = self.curr;
15 self.curr = Default::default();
16 }
17 pub fn prev(&self) -> Data {
18 self.prev
19 }
20 pub fn curr(&mut self) -> &mut Data {
21 &mut self.curr
22 }
23}
24
25#[cfg_attr(feature = "mem_dbg", derive(MemSize, MemDbg))]
26#[cfg_attr(feature = "mem_dbg", copy_type)]
27#[derive(Debug, Default, Clone, Copy)]
28pub(super) struct Data {
29 pub(super) last_line_kind: LineKind,
30}
31
32#[cfg_attr(feature = "mem_dbg", derive(MemSize, MemDbg))]
33#[cfg_attr(feature = "mem_dbg", copy_type)]
34#[derive(Debug, Default, Clone, Copy, PartialEq, Eq)]
35pub(super) enum LineKind {
36 DecideAndOr,
37 Conflict,
38 Push,
39 #[default]
40 Other,
41}