webots 0.8.0

Webots bindings for Rust
Documentation
use webots_bindings::{
    WbRobotMode_WB_MODE_CROSS_COMPILATION, WbRobotMode_WB_MODE_REMOTE_CONTROL,
    WbRobotMode_WB_MODE_SIMULATION,
};

pub enum RobotMode {
    Simulation,
    CrossCompilation,
    RemoteControl,
}

impl From<u32> for RobotMode {
    #[allow(non_upper_case_globals)]
    fn from(other: u32) -> Self {
        match other {
            WbRobotMode_WB_MODE_SIMULATION => RobotMode::Simulation,
            WbRobotMode_WB_MODE_CROSS_COMPILATION => RobotMode::CrossCompilation,
            WbRobotMode_WB_MODE_REMOTE_CONTROL => RobotMode::RemoteControl,
            _ => unreachable!(),
        }
    }
}

impl Into<u32> for RobotMode {
    #[allow(non_upper_case_globals)]
    fn into(self) -> u32 {
        match self {
            RobotMode::Simulation => WbRobotMode_WB_MODE_SIMULATION,
            RobotMode::CrossCompilation => WbRobotMode_WB_MODE_CROSS_COMPILATION,
            RobotMode::RemoteControl => WbRobotMode_WB_MODE_REMOTE_CONTROL,
        }
    }
}