pub use matchy_paraglob::offset_format::{
read_cstring,
read_cstring_with_len,
read_str_checked,
read_str_unchecked,
read_struct,
read_struct_slice,
CharClassItemEncoded,
GlobSegmentHeader,
GlobSegmentIndex,
ParaglobHeader,
PatternDataMapping,
MAGIC,
MATCHY_FORMAT_VERSION,
MATCHY_FORMAT_VERSION_V1,
MATCHY_FORMAT_VERSION_V2,
MATCHY_FORMAT_VERSION_V3,
MATCHY_FORMAT_VERSION_V4,
};
#[cfg(test)]
mod tests {
use super::*;
use std::mem;
#[test]
fn test_reexports_match_expected_sizes() {
assert_eq!(mem::size_of::<ParaglobHeader>(), 112);
assert_eq!(mem::size_of::<PatternDataMapping>(), 12);
assert_eq!(mem::size_of::<GlobSegmentIndex>(), 8);
assert_eq!(mem::size_of::<GlobSegmentHeader>(), 12);
assert_eq!(mem::size_of::<CharClassItemEncoded>(), 12);
}
#[test]
fn test_header_validation() {
let mut header = ParaglobHeader::new();
assert!(header.validate().is_ok());
assert_eq!(header.version, MATCHY_FORMAT_VERSION);
header.magic = *b"INVALID!";
assert!(header.validate().is_err());
}
}