#![cfg_attr(
all(doc, feature = "document-features"),
doc = ::document_features::document_features!()
)]
#![cfg_attr(all(doc, feature = "document-features"), feature(doc_cfg))]
#![deny(missing_docs, rust_2018_idioms, unsafe_code)]
pub mod bundle;
pub struct Bundle {
pub pack: data::File,
pub index: index::File,
}
pub mod find;
pub mod cache;
pub mod data;
mod find_traits;
pub use find_traits::{Find, FindExt};
pub mod index;
pub mod multi_index;
pub mod verify;
mod mmap {
use std::path::Path;
pub fn read_only(path: &Path) -> std::io::Result<memmap2::Mmap> {
let file = std::fs::File::open(path)?;
#[allow(unsafe_code)]
unsafe {
memmap2::MmapOptions::new().map_copy_read_only(&file)
}
}
}
#[inline]
fn read_u32(b: &[u8]) -> u32 {
u32::from_be_bytes(b.try_into().unwrap())
}
#[inline]
fn read_u64(b: &[u8]) -> u64 {
u64::from_be_bytes(b.try_into().unwrap())
}
fn exact_vec<T>(capacity: usize) -> Vec<T> {
let mut v = Vec::new();
v.reserve_exact(capacity);
v
}