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