extern crate alloc;
use crate::kairos::Kairos;
use crate::metis::dot::RawDot;
use crate::metis::{Anchor, Dot, Locus, Metatheses, Metathesis};
#[track_caller]
fn d(station: u32, counter: u64) -> Dot {
Dot::from_parts(station, counter).expect("test literal names the non-dot counter zero")
}
mod examples;
mod properties;
fn rank(physical: u64) -> Kairos {
Kairos::new(physical, 0u16, 1, 0u16)
}
fn testimony(target: (u32, u64), anchor: Anchor, tick: u64) -> Metathesis {
Metathesis {
target: target.into(),
to: Locus {
anchor,
rank: rank(tick),
},
}
}
fn canonical_record() -> Metatheses {
let mut record = Metatheses::new();
assert!(record.insert(d(1, 3), testimony((1, 1), Anchor::Origin, 7)));
assert!(record.insert(
d(2, 1),
testimony(
(1, 1),
Anchor::After(RawDot {
station: 1,
counter: 3
}),
9
)
));
record
}