keepass-db 0.0.2

KeePass password database library and tools
Documentation
use std::io::Cursor;

use byteorder::{BigEndian, LittleEndian, ReadBytesExt, WriteBytesExt};

#[cfg(test)]
pub(crate) fn make_u32(value: u32) -> Vec<u8> {
    let out = vec![0; 4];
    let mut cursor = Cursor::new(out);
    cursor.write_u32::<LittleEndian>(value).unwrap();
    cursor.into_inner()
}

pub(crate) fn make_u64(value: u64) -> Vec<u8> {
    let out = vec![0; 8];
    let mut cursor = Cursor::new(out);
    cursor.write_u64::<LittleEndian>(value).unwrap();
    cursor.into_inner()
}

pub(crate) fn unmake_u32(value: &[u8]) -> Option<u32> {
    if value.len() != 4 {
        return None;
    }
    let mut cursor = Cursor::new(value);
    Some(cursor.read_u32::<LittleEndian>().unwrap())
}

pub(crate) fn unmake_u64(value: &[u8]) -> Option<u64> {
    if value.len() != 8 {
        return None;
    }
    let mut cursor = Cursor::new(value);
    Some(cursor.read_u64::<LittleEndian>().unwrap())
}

pub(crate) fn unmake_u64_be(value: &[u8]) -> Option<u64> {
    if value.len() != 8 {
        return None;
    }
    let mut cursor = Cursor::new(value);
    Some(cursor.read_u64::<BigEndian>().unwrap())
}