mysql_binlog_connector_rust/event/
rotate_event.rs

1use 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}