use crate::Time;
pub trait Oracle: Sync {
fn update_state(&mut self, state: &[bool]);
fn update_time(&mut self, time: Time);
fn output_assumes(&self) -> impl Iterator<Item = Option<bool>>;
fn output_guarantees(&self) -> impl Iterator<Item = Option<bool>>;
fn final_output_assumes(&self) -> impl Iterator<Item = bool>;
fn final_output_guarantees(&self) -> impl Iterator<Item = bool>;
}