mirror of
https://forgejo.ellis.link/continuwuation/continuwuity.git
synced 2026-05-26 20:49:55 +00:00
Toward abstracting Pdu into trait Event.
Co-authored-by: Jade Ellis <jade@ellis.link> Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
use serde::Deserialize;
|
||||
use serde_json::value::Value as JsonValue;
|
||||
|
||||
use super::Event;
|
||||
use crate::{Result, err};
|
||||
|
||||
#[inline]
|
||||
#[must_use]
|
||||
pub(super) fn as_value<E: Event>(event: &E) -> JsonValue {
|
||||
get(event).expect("Failed to represent Event content as JsonValue")
|
||||
}
|
||||
|
||||
#[inline]
|
||||
pub(super) fn get<T, E>(event: &E) -> Result<T>
|
||||
where
|
||||
T: for<'de> Deserialize<'de>,
|
||||
E: Event,
|
||||
{
|
||||
serde_json::from_str(event.content().get())
|
||||
.map_err(|e| err!(Request(BadJson("Failed to deserialize content into type: {e}"))))
|
||||
}
|
||||
Reference in New Issue
Block a user