host-can 0.1.5

Host library for CAN adapters
Documentation
pub use embedded_can::{ExtendedId, Id, StandardId};

pub fn raw_u32(id: Id) -> u32 {
    match id {
        Id::Standard(id) => id.as_raw() as u32,
        Id::Extended(id) => id.as_raw(),
    }
}

pub fn new_standard(id: u16) -> Option<Id> {
    StandardId::new(id).map(|i| Id::Standard(i))
}

pub fn new_extended(id: u32) -> Option<Id> {
    ExtendedId::new(id).map(|i| Id::Extended(i))
}

#[cfg(test)]
mod test {
    use super::*;

    #[test]
    fn id_validation() {
        // standard IDs are <= 0x7FF
        assert!(new_standard(0x800).is_none());
        // extended IDs are <= 0x1FFF_FFFF
        assert!(new_extended(0x2000_0000).is_none());
    }
}