1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use crate::CfgLD;
use pergola::{DefTraits, LatticeDef, LatticeElt, Tuple2};
pub type StateLD<ObjLD, Peer> = Tuple2<ObjLD, CfgLD<Peer>>;
pub type StateLE<ObjLD, Peer> = LatticeElt<StateLD<ObjLD, Peer>>;
pub trait StateLEExt<ObjLD: LatticeDef, Peer: DefTraits> {
fn object(&self) -> &LatticeElt<ObjLD>;
fn config(&self) -> &LatticeElt<CfgLD<Peer>>;
}
impl<ObjLD: LatticeDef, Peer: DefTraits> StateLEExt<ObjLD, Peer> for StateLE<ObjLD, Peer> {
fn object(&self) -> &LatticeElt<ObjLD> {
&self.value.0
}
fn config(&self) -> &LatticeElt<CfgLD<Peer>> {
&self.value.1
}
}