pub trait Host {
type Error: Error;
// Provided methods
fn add_pty(&self) -> Result<Box<dyn Tty>, HostError<Self::Error>> { ... }
fn add_video_source(
&mut self,
_receiver: FrameReceiver
) -> Result<(), HostError<Self::Error>> { ... }
fn add_audio_source(
&mut self
) -> Result<Box<dyn Audio>, HostError<Self::Error>> { ... }
fn register_controllers(
&mut self,
_sender: EventSender<ControllerEvent>
) -> Result<(), HostError<Self::Error>> { ... }
fn register_keyboard(
&mut self,
_sender: EventSender<KeyEvent>
) -> Result<(), HostError<Self::Error>> { ... }
fn register_mouse(
&mut self,
_sender: EventSender<MouseEvent>
) -> Result<(), HostError<Self::Error>> { ... }
}