pub struct TableMapEvent {
pub table_id: u64,
pub database_name: String,
pub table_name: String,
pub column_count: u64,
pub column_types: Vec<u8>,
}Expand description
Parsed TABLE_MAP event (type 19).
Maps a table_id to a database.table name and column type information. This event precedes row-based events to provide schema context.
§Examples
use idb::binlog::events::TableMapEvent;
use byteorder::{LittleEndian, ByteOrder};
let mut data = vec![0u8; 50];
// table_id (6 bytes LE)
LittleEndian::write_u32(&mut data[0..], 42);
data[4] = 0; data[5] = 0;
// flags (2 bytes)
LittleEndian::write_u16(&mut data[6..], 0);
// database name length (1 byte) + name + NUL
data[8] = 4; // "test"
data[9..13].copy_from_slice(b"test");
data[13] = 0; // NUL
// table name length (1 byte) + name + NUL
data[14] = 5; // "users"
data[15..20].copy_from_slice(b"users");
data[20] = 0; // NUL
// column_count (packed integer)
data[21] = 3;
// column_types
data[22] = 3; // LONG
data[23] = 15; // VARCHAR
data[24] = 12; // DATETIME
let tme = TableMapEvent::parse(&data).unwrap();
assert_eq!(tme.table_id, 42);
assert_eq!(tme.database_name, "test");
assert_eq!(tme.table_name, "users");
assert_eq!(tme.column_count, 3);
assert_eq!(tme.column_types, vec![3, 15, 12]);Fields§
§table_id: u64Internal table ID.
database_name: StringDatabase (schema) name.
table_name: StringTable name.
column_count: u64Number of columns.
column_types: Vec<u8>Column type codes.
Implementations§
Trait Implementations§
Source§impl Clone for TableMapEvent
impl Clone for TableMapEvent
Source§fn clone(&self) -> TableMapEvent
fn clone(&self) -> TableMapEvent
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 TableMapEvent
impl Debug for TableMapEvent
Auto Trait Implementations§
impl Freeze for TableMapEvent
impl RefUnwindSafe for TableMapEvent
impl Send for TableMapEvent
impl Sync for TableMapEvent
impl Unpin for TableMapEvent
impl UnsafeUnpin for TableMapEvent
impl UnwindSafe for TableMapEvent
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