]> Untitled Git - lemmy.git/blob - src/apub/extensions/page_extension.rs
routes.api: fix get_captcha endpoint (#1135)
[lemmy.git] / src / apub / extensions / page_extension.rs
1 use activitystreams::unparsed::UnparsedMutExt;
2 use activitystreams_ext::UnparsedExtension;
3 use serde::{Deserialize, Serialize};
4
5 #[derive(Clone, Debug, Default, Deserialize, Serialize)]
6 #[serde(rename_all = "camelCase")]
7 pub struct PageExtension {
8   pub comments_enabled: bool,
9   pub sensitive: bool,
10   pub stickied: bool,
11 }
12
13 impl<U> UnparsedExtension<U> for PageExtension
14 where
15   U: UnparsedMutExt,
16 {
17   type Error = serde_json::Error;
18
19   fn try_from_unparsed(unparsed_mut: &mut U) -> Result<Self, Self::Error> {
20     Ok(PageExtension {
21       comments_enabled: unparsed_mut.remove("commentsEnabled")?,
22       sensitive: unparsed_mut.remove("sensitive")?,
23       stickied: unparsed_mut.remove("stickied")?,
24     })
25   }
26
27   fn try_into_unparsed(self, unparsed_mut: &mut U) -> Result<(), Self::Error> {
28     unparsed_mut.insert("commentsEnabled", self.comments_enabled)?;
29     unparsed_mut.insert("sensitive", self.sensitive)?;
30     unparsed_mut.insert("stickied", self.stickied)?;
31     Ok(())
32   }
33 }