pub struct CommonEventHeader {
pub timestamp: u32,
pub type_code: BinlogEventType,
pub server_id: u32,
pub event_length: u32,
pub next_position: u32,
pub flags: u16,
}Expand description
The 19-byte common header present at the start of every binlog event.
All integer fields are stored in little-endian byte order.
§Examples
use idb::binlog::CommonEventHeader;
use byteorder::{LittleEndian, ByteOrder};
let mut data = vec![0u8; 19];
LittleEndian::write_u32(&mut data[0..], 1_700_000_000); // timestamp
data[4] = 15; // FORMAT_DESCRIPTION_EVENT
LittleEndian::write_u32(&mut data[5..], 1); // server_id
LittleEndian::write_u32(&mut data[9..], 119); // event_length
LittleEndian::write_u32(&mut data[13..], 123); // next_position
LittleEndian::write_u16(&mut data[17..], 0); // flags
let hdr = CommonEventHeader::parse(&data).unwrap();
assert_eq!(hdr.timestamp, 1_700_000_000);
assert_eq!(hdr.event_length, 119);Fields§
§timestamp: u32Seconds since Unix epoch when the event was created.
type_code: BinlogEventTypeEvent type.
server_id: u32Server ID of the originating MySQL server.
event_length: u32Total event size in bytes (header + payload + optional checksum).
next_position: u32Absolute file position of the next event.
flags: u16Event flags (e.g. LOG_EVENT_BINLOG_IN_USE_F).
Implementations§
Source§impl CommonEventHeader
impl CommonEventHeader
Sourcepub fn parse(data: &[u8]) -> Option<Self>
pub fn parse(data: &[u8]) -> Option<Self>
Parse a common event header from a byte slice.
Returns None if the slice is shorter than COMMON_HEADER_SIZE (19 bytes).
Sourcepub fn payload_offset(&self) -> usize
pub fn payload_offset(&self) -> usize
Byte offset where the event payload begins (always 19).
Sourcepub fn payload_length(&self, checksum_enabled: bool) -> usize
pub fn payload_length(&self, checksum_enabled: bool) -> usize
Size of the event payload in bytes, excluding header and optional checksum.
Trait Implementations§
Source§impl Clone for CommonEventHeader
impl Clone for CommonEventHeader
Source§fn clone(&self) -> CommonEventHeader
fn clone(&self) -> CommonEventHeader
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CommonEventHeader
impl Debug for CommonEventHeader
Auto Trait Implementations§
impl Freeze for CommonEventHeader
impl RefUnwindSafe for CommonEventHeader
impl Send for CommonEventHeader
impl Sync for CommonEventHeader
impl Unpin for CommonEventHeader
impl UnsafeUnpin for CommonEventHeader
impl UnwindSafe for CommonEventHeader
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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