falco_event/events/
event.rs

1use crate::events::to_bytes::EventToBytes;
2use crate::events::{EventMetadata, PayloadToBytes};
3use std::fmt::{Debug, Formatter};
4use std::io::Write;
5
6#[derive(Clone)]
7pub struct Event<T> {
8    pub metadata: EventMetadata,
9    pub params: T,
10}
11
12impl<T: Debug> Debug for Event<T> {
13    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
14        write!(f, "{:?} {:?}", self.metadata, self.params)
15    }
16}
17
18impl<T: PayloadToBytes> EventToBytes for Event<T> {
19    fn binary_size(&self) -> usize {
20        26 + self.params.binary_size()
21    }
22
23    fn write<W: Write>(&self, writer: W) -> std::io::Result<()> {
24        self.params.write(&self.metadata, writer)
25    }
26}