arci 0.1.0

Abstract Robot Control Interface
Documentation
use auto_impl::auto_impl;

use crate::error::Error;

#[auto_impl(Box, Arc)]
pub trait MotorDrivePosition: Send + Sync {
    fn set_motor_position(&self, position: f64) -> Result<(), Error>;
    fn get_motor_position(&self) -> Result<f64, Error>;
}

#[auto_impl(Box, Arc)]
pub trait MotorDriveVelocity: Send + Sync {
    fn set_motor_velocity(&self, velocity: f64) -> Result<(), Error>;
    fn get_motor_velocity(&self) -> Result<f64, Error>;
}

#[auto_impl(Box, Arc)]
pub trait MotorDriveEffort: Send + Sync {
    fn set_motor_effort(&self, effort: f64) -> Result<(), Error>;
    fn get_motor_effort(&self) -> Result<f64, Error>;
}