]> Untitled Git - lemmy.git/blob - crates/apub/src/context.rs
Use serde_json::to_value
[lemmy.git] / crates / apub / src / context.rs
1 use activitystreams::{base::AnyBase, primitives::OneOrMany};
2 use serde::{Deserialize, Serialize};
3
4 lazy_static! {
5   static ref CONTEXT: OneOrMany<AnyBase> =
6     serde_json::from_str(include_str!("../assets/lemmy/context.json")).expect("parse context");
7 }
8
9 #[derive(Serialize, Deserialize)]
10 pub(crate) struct WithContext<T> {
11   #[serde(rename = "@context")]
12   context: OneOrMany<AnyBase>,
13   #[serde(flatten)]
14   inner: T,
15 }
16
17 impl<T> WithContext<T> {
18   pub(crate) fn new(inner: T) -> WithContext<T> {
19     WithContext {
20       context: CONTEXT.clone(),
21       inner,
22     }
23   }
24   pub(crate) fn inner(self) -> T {
25     self.inner
26   }
27 }