mysql_cdc/events/
event_header.rs1use byteorder::{LittleEndian, ReadBytesExt};
2use std::io::Cursor;
3
4use crate::errors::Error;
5
6#[derive(Debug)]
10pub struct EventHeader {
11 pub timestamp: u32,
13
14 pub event_type: u8,
16
17 pub server_id: u32,
19
20 pub event_length: u32,
22
23 pub next_event_position: u32,
25
26 pub event_flags: u16,
29}
30
31impl EventHeader {
32 pub fn parse(slice: &[u8]) -> Result<Self, Error> {
33 let mut cursor = Cursor::new(slice);
34 Ok(Self {
35 timestamp: cursor.read_u32::<LittleEndian>()?,
36 event_type: cursor.read_u8()?,
37 server_id: cursor.read_u32::<LittleEndian>()?,
38 event_length: cursor.read_u32::<LittleEndian>()?,
39 next_event_position: cursor.read_u32::<LittleEndian>()?,
40 event_flags: cursor.read_u16::<LittleEndian>()?,
41 })
42 }
43}