1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

use chrono::{NaiveDateTime, NaiveDate};


#[derive(Debug)]
#[repr(C)]
pub struct EventHeader {
    pub timestamp: i32, 
    pub type_code: i8,
    pub server_id: i32, 
    pub event_len: i32, 
    pub next_pos: i32, 
    pub flags: i16
}

impl EventHeader {
    pub fn new(timestamp: i32, type_code: i8, server_id: i32, event_len: i32, next_pos: i32, flags: i16) -> EventHeader {
        EventHeader {
            timestamp: timestamp,
            type_code: type_code,
            server_id: server_id,
            event_len: event_len,
            next_pos: next_pos,
            flags: flags
        }
    }

    pub fn get_time(&self) -> String {
        let dt = NaiveDateTime::from_timestamp(self.timestamp as i64, 0);
        dt.to_string()
    }

    pub fn get_event_len(&self) -> usize {
        self.event_len as usize
    }

    pub fn get_event_type(&self) -> i8 {
        self.type_code
    }
}