use timemachine::TimeMachine;
#[derive(Debug, PartialEq, Clone)]
pub enum State {
NightDark,
DuskDawnRed,
DayWhite,
}
impl Default for State {
fn default() -> State {
State::DayWhite
}
}
impl std::fmt::Display for State {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
write!(f, "{:?}", self)
}
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let api_client = napchart::api::BlockingClient::default();
let napchart = api_client.get("cse2j")?;
let tm: TimeMachine<Option<napchart::ElementData>> =
TimeMachine::from_napchart(&napchart.lanes[0]);
let tm: TimeMachine<String> = tm.map_states(|e| match e {
Some(data) => data.color,
None => String::from("blank"),
});
println!("{}", tm.generate_graphviz().unwrap());
Ok(())
}