micropelt 1.1.8

Micropelt device communication definitions
Documentation
use std::io::Result;

use crate::utils::check_payload_length;

use super::TravelDistance;

const UPLINK_N_BYTES: usize = 1;

#[derive(Clone, Debug, Eq, PartialEq)]
pub struct Uplink {
    travel_distance: TravelDistance,
}

impl Uplink {
    pub(crate) fn deserialise(input: &[u8]) -> Result<Self> {
        check_payload_length(input, UPLINK_N_BYTES)?;

        let travel_distance = TravelDistance::from_bin(input[0])?;

        Ok(Self { travel_distance })
    }

    pub fn travel_distance(&self) -> &TravelDistance {
        &self.travel_distance
    }
}

#[cfg(test)]
#[path = "./test_uplink.rs"]
mod test_uplink;