2024-02-18 13:55:22 +00:00
|
|
|
use serde::Serialize;
|
|
|
|
|
|
|
|
#[derive(Serialize)]
|
|
|
|
pub struct Event<T>
|
|
|
|
where
|
|
|
|
T: Serialize,
|
|
|
|
{
|
|
|
|
name: String,
|
|
|
|
data: T,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<T> Event<T>
|
|
|
|
where
|
|
|
|
T: Serialize,
|
|
|
|
{
|
2024-02-19 14:27:17 +00:00
|
|
|
pub fn new(name: &str, data: T) -> Event<T> {
|
|
|
|
Event {
|
|
|
|
name: name.to_string(),
|
|
|
|
data,
|
|
|
|
}
|
2024-02-18 13:55:22 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<T> Into<String> for Event<T>
|
|
|
|
where
|
|
|
|
T: Serialize,
|
|
|
|
{
|
|
|
|
fn into(self) -> String {
|
|
|
|
serde_json::to_string(&self).unwrap()
|
|
|
|
}
|
|
|
|
}
|