ftswarm 0.2.5

A simple swarm protocol communication library
Documentation
use std::future::Future;
use ftswarm_macros::{default_new_swarm_object_impls, impl_swarm_object};
use ftswarm_proto::command::argument::Argument;
use ftswarm_proto::command::enums::ActorType;
use ftswarm_proto::command::rpc::RpcFunction;
use crate::FtSwarm;
use crate::swarm_object::{NewSwarmObject, SwarmObject, Updateable};
use ftswarm_macros::actor_swarm_object;


pub enum ValueState {
    High,
    Reverse,
    Low,
}

impl From<bool> for ValueState {
    fn from(value: bool) -> Self {
        if value {
            ValueState::High
        } else {
            ValueState::Low
        }
    }
}

impl From<ValueState> for i64 {
    fn from(value: ValueState) -> Self {
        match value {
            ValueState::High => 255,
            ValueState::Reverse => -255,
            ValueState::Low => 0,
        }
    }
}

actor_swarm_object!(Motor, false);
actor_swarm_object!(XMMotor, false);
actor_swarm_object!(Tractor, false);
actor_swarm_object!(Encoder, false);
actor_swarm_object!(Lamp, true);
actor_swarm_object!(Valve, true);
actor_swarm_object!(Compressor, true);
actor_swarm_object!(Buzzer, true);