activitystreams_types/activity/
create.rs1use activitystreams_derive::Properties;
21use activitystreams_traits::{Activity, Object};
22use serde_derive::{Deserialize, Serialize};
23
24use super::{
25 kind::CreateType,
26 properties::{ActivityProperties, CreateProperties},
27 ActivityExt,
28};
29use crate::object::{properties::ObjectProperties, ObjectExt};
30
31#[derive(Clone, Debug, Default, Deserialize, Serialize, Properties)]
33#[serde(rename_all = "camelCase")]
34pub struct Create {
35 #[serde(rename = "type")]
36 #[serde(alias = "objectType")]
37 #[serde(alias = "verb")]
38 pub kind: CreateType,
39
40 #[serde(flatten)]
42 pub create_props: CreateProperties,
43
44 #[serde(flatten)]
46 pub object_props: ObjectProperties,
47
48 #[serde(flatten)]
50 pub activity_props: ActivityProperties,
51}
52
53impl Object for Create {}
54impl ObjectExt for Create {
55 fn props(&self) -> &ObjectProperties {
56 &self.object_props
57 }
58
59 fn props_mut(&mut self) -> &mut ObjectProperties {
60 &mut self.object_props
61 }
62}
63impl Activity for Create {}
64impl ActivityExt for Create {
65 fn props(&self) -> &ActivityProperties {
66 &self.activity_props
67 }
68
69 fn props_mut(&mut self) -> &mut ActivityProperties {
70 &mut self.activity_props
71 }
72}