native_neural_network 0.3.1

Lib no_std Rust for native neural network (.rnn)
Documentation
use crate::model_format::{
    encoded_size_f32, encoded_size_f64, header::is_header_consistent, parse_header,
};

pub fn expected_encoded_size_from_header(bytes: &[u8]) -> Option<usize> {
    let h = parse_header(bytes)?;
    if !is_header_consistent(&h) {
        return None;
    }
    match h.dtype {
        0 => encoded_size_f32(h.layer_count, h.weights_len, h.biases_len),
        1 => encoded_size_f64(h.layer_count, h.weights_len, h.biases_len),
        _ => None,
    }
}

pub fn has_full_payload(bytes: &[u8]) -> bool {
    let expected = match expected_encoded_size_from_header(bytes) {
        Some(v) => v,
        None => return false,
    };
    bytes.len() >= expected
}