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