pub struct MarkerHeaderParser;Expand description
Parser for the RAR archive marker (signature) header.
Implementations§
Source§impl MarkerHeaderParser
impl MarkerHeaderParser
Sourcepub const HEADER_SIZE: usize = 7
pub const HEADER_SIZE: usize = 7
Size of the RAR4 marker header in bytes.
Sourcepub fn detect_version(buffer: &[u8]) -> Result<RarVersion>
pub fn detect_version(buffer: &[u8]) -> Result<RarVersion>
Detect RAR version from buffer without full parsing.
Returns RarVersion::Rar4 or RarVersion::Rar5 based on the
signature bytes, or RarError::InvalidSignature if the buffer
doesn’t start with a valid RAR signature.
use rar_stream::parsing::marker_header::MarkerHeaderParser;
use rar_stream::parsing::marker_header::RarVersion;
let rar4 = [0x52, 0x61, 0x72, 0x21, 0x1A, 0x07, 0x00];
assert_eq!(MarkerHeaderParser::detect_version(&rar4).unwrap(), RarVersion::Rar4);
let rar5 = [0x52, 0x61, 0x72, 0x21, 0x1A, 0x07, 0x01, 0x00];
assert_eq!(MarkerHeaderParser::detect_version(&rar5).unwrap(), RarVersion::Rar5);
assert!(MarkerHeaderParser::detect_version(b"not rar").is_err());Sourcepub fn parse(buffer: &[u8]) -> Result<MarkerHeader>
pub fn parse(buffer: &[u8]) -> Result<MarkerHeader>
Parse marker header from buffer. The marker header is actually parsed as a generic RAR header. The “size” field tells us how many bytes this header consumes.
Auto Trait Implementations§
impl Freeze for MarkerHeaderParser
impl RefUnwindSafe for MarkerHeaderParser
impl Send for MarkerHeaderParser
impl Sync for MarkerHeaderParser
impl Unpin for MarkerHeaderParser
impl UnsafeUnpin for MarkerHeaderParser
impl UnwindSafe for MarkerHeaderParser
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more