use std::any::Any;
use crate::chip::Timeline;
use crate::snapshot::Store;
use crate::time::EventId;
pub trait Peer: Store + std::fmt::Debug + Send + Any {
fn start(&mut self, address: u8, read: bool, context: &mut Timeline<'_, '_>) -> bool;
fn write(&mut self, byte: u8, context: &mut Timeline<'_, '_>) -> bool;
fn read(&mut self, last: bool, context: &mut Timeline<'_, '_>) -> u8;
fn stop(&mut self, context: &mut Timeline<'_, '_>);
fn on_event(&mut self, _event: EventId, _context: &mut Timeline<'_, '_>) {}
fn restarted(&mut self, _context: &mut Timeline<'_, '_>) {}
fn received(&self) -> &[u8] {
&[]
}
}