adlt 0.33.2

Library and tools to handle automotive DLT- (diagnostic log and trace) files.
Documentation
extern crate lazy_static;

pub mod dlt;
pub mod filter;
pub mod lifecycle;
pub mod plugins;
pub mod utils;

pub fn name() -> &'static str {
    "adlt"
}
pub fn version() -> (u32, u32, u32) {
    const VERSION_MAJOR: &str = env!("CARGO_PKG_VERSION_MAJOR");
    const VERSION_MINOR: &str = env!("CARGO_PKG_VERSION_MINOR");
    const VERSION_PATCH: &str = env!("CARGO_PKG_VERSION_PATCH");
    (
        VERSION_MAJOR.parse::<u32>().unwrap_or(0),
        VERSION_MINOR.parse::<u32>().unwrap_or(0),
        VERSION_PATCH.parse::<u32>().unwrap_or(0),
    )
}

#[cfg(test)]
mod tests {
    use super::*;
    #[test]
    fn lib_name_version() {
        const NAME: &str = env!("CARGO_PKG_NAME");
        assert_eq!(NAME, name());
        const VERSION: &str = env!("CARGO_PKG_VERSION");
        let (major, minor, patch) = version();
        assert_eq!(VERSION, format!("{}.{}.{}", major, minor, patch));
    }

    #[test]
    fn mut_vec_elems() {
        let mut buffer = vec![1, 2, 3, 5, 8];
        let parts = buffer.as_mut_slice();
        parts[3] = 4;
        parts[4] = 5;
        let p0: &mut i32 = &mut parts[0];
        *p0 = 0;
        assert_eq!(buffer, vec![0, 2, 3, 4, 5], "buffer={:?}", buffer);
    }
    #[test]
    fn mut_two_vec_elems() {
        let mut buffer = vec![1, 2, 3, 5, 8];
        let (last, rest) = buffer.as_mut_slice().split_last_mut().unwrap();
        *last = 5;
        *rest.last_mut().unwrap() = 4;
        assert_eq!(buffer, vec![1, 2, 3, 4, 5], "buffer={:?}", buffer);
    }
}