mod parsing;
mod types;
#[cfg(test)]
mod tests;
use crate::hf_pipeline::error::FetchError;
use parsing::{parse_all_tensor_info, parse_header, skip_all_metadata};
pub use types::{GgufSummary, GgufTensorInfo};
pub fn verify_gguf(data: &[u8]) -> Result<GgufSummary, FetchError> {
let header = parse_header(data)?;
let pos = skip_all_metadata(data, 24, header.metadata_count)?;
let tensors = parse_all_tensor_info(data, pos, header.tensor_count)?;
Ok(GgufSummary {
version: header.version,
tensor_count: header.tensor_count,
metadata_count: header.metadata_count,
file_size: data.len(),
tensors,
})
}