mysql_binlog_connector_rust/event/
rotate_event.rs1use std::io::Cursor;
2
3use byteorder::{LittleEndian, ReadBytesExt};
4use serde::{Deserialize, Serialize};
5
6use crate::{binlog_error::BinlogError, ext::cursor_ext::CursorExt};
7
8#[derive(Debug, Deserialize, Serialize, Clone)]
9pub struct RotateEvent {
10 pub binlog_filename: String,
11 pub binlog_position: u64,
12}
13
14impl RotateEvent {
15 pub fn parse(cursor: &mut Cursor<&Vec<u8>>) -> Result<Self, BinlogError> {
16 let binlog_position = cursor.read_u64::<LittleEndian>()?;
17 let binlog_filename = cursor.read_string_without_terminator(cursor.get_ref().len() - 8)?;
18 Ok(Self {
19 binlog_filename,
20 binlog_position,
21 })
22 }
23}