rust_formal_verification/models/and_inverter_graph/aig_signal.rs
1// ************************************************************************************************
2// use
3// ************************************************************************************************
4
5// ************************************************************************************************
6// struct
7// ************************************************************************************************
8
9use super::aig_wire::AIGWire;
10
11#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord)]
12pub struct AIGSignal {
13 signal_number: usize,
14}
15
16// ************************************************************************************************
17// impl
18// ************************************************************************************************
19
20impl AIGSignal {
21 pub fn new(signal_number: usize) -> Self {
22 Self { signal_number }
23 }
24
25 pub fn get_wire(&self, is_negated: bool) -> AIGWire {
26 if is_negated {
27 AIGWire::new((self.signal_number << 1) + 1)
28 } else {
29 AIGWire::new(self.signal_number << 1)
30 }
31 }
32}