use crate::RobotResult;
pub trait Robot {
type State;
fn version() -> String;
fn init(&mut self) -> RobotResult<()>;
fn shutdown(&mut self) -> RobotResult<()>;
fn enable(&mut self) -> RobotResult<()>;
fn disable(&mut self) -> RobotResult<()>;
fn reset(&mut self) -> RobotResult<()>;
fn is_moving(&mut self) -> RobotResult<bool>;
fn waiting_for_finish(&mut self) -> RobotResult<()>;
fn stop(&mut self) -> RobotResult<()>;
fn pause(&mut self) -> RobotResult<()>;
fn resume(&mut self) -> RobotResult<()>;
fn emergency_stop(&mut self) -> RobotResult<()>;
fn clear_emergency_stop(&mut self) -> RobotResult<()>;
fn read_state(&mut self) -> RobotResult<Self::State>;
}
pub trait RobotFile {
const URDF: &'static str;
}
pub trait Realtime {}