use activitystreams::{base::AnyBase, primitives::OneOrMany}; use serde::{Deserialize, Serialize}; lazy_static! { static ref CONTEXT: OneOrMany = serde_json::from_str(include_str!("../assets/lemmy/context.json")).expect("parse context"); } #[derive(Serialize, Deserialize)] pub(crate) struct WithContext { #[serde(rename = "@context")] context: OneOrMany, #[serde(flatten)] inner: T, } impl WithContext { pub(crate) fn new(inner: T) -> WithContext { WithContext { context: CONTEXT.clone(), inner, } } pub(crate) fn inner(self) -> T { self.inner } } #[derive(Serialize, Deserialize)] pub(crate) struct WithContextJson { #[serde(rename = "@context")] context: OneOrMany, inner: serde_json::Value, } impl WithContextJson { pub(crate) fn new(inner: serde_json::Value) -> WithContextJson { WithContextJson { context: CONTEXT.clone(), inner, } } }