Skip to main content

BinlogFile

Struct BinlogFile 

Source
pub struct BinlogFile { /* private fields */ }
Expand description

A MySQL binary log file reader.

Validates the magic bytes on open, parses the FORMAT_DESCRIPTION_EVENT, and provides methods to read individual events or iterate through all of them.

Implementations§

Source§

impl BinlogFile

Source

pub fn open(path: &str) -> Result<Self, IdbError>

Open a binlog file from the filesystem.

Validates the 4-byte magic header and reads the FORMAT_DESCRIPTION_EVENT.

Source

pub fn from_bytes(data: Vec<u8>) -> Result<Self, IdbError>

Create a binlog reader from in-memory bytes (useful for WASM).

Source

pub fn file_size(&self) -> u64

Total file size in bytes.

Source

pub fn format_description(&self) -> Option<&FormatDescriptionEvent>

The FORMAT_DESCRIPTION_EVENT parsed from the file header, if available.

Source

pub fn has_checksum(&self) -> bool

Whether CRC-32 checksums are enabled for events in this file.

Source

pub fn read_event_at( &mut self, offset: u64, ) -> Result<Option<(CommonEventHeader, BinlogEvent)>, IdbError>

Read and parse the event at the given absolute file offset.

Returns Ok(None) if the offset is at or beyond EOF. Returns the common header and parsed event payload on success.

Source

pub fn events(&mut self) -> BinlogEventIterator<'_>

Return an iterator over all events in the file, starting after the magic bytes.

Each item is (file_offset, CommonEventHeader, BinlogEvent).

Source

pub fn validate_checksum_at( &mut self, offset: u64, ) -> Result<Option<bool>, IdbError>

Validate the CRC-32C checksum of the event at the given offset.

Returns None if the event cannot be read, Some(true) if valid, Some(false) if the checksum does not match.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V