Derive Macro lemmy_apub_lib_derive::ActivityHandler [−][src]
#[derive(ActivityHandler)]
{
// Attributes available to this derive:
#[activity_handler]
}
Expand description
Generates implementation ActivityHandler for an enum, which looks like the following (handling all enum variants).
Based on this code:
ⓘ
#[derive(serde::Deserialize, serde::Serialize, ActivityHandler)]
#[serde(untagged)]
pub enum PersonInboxActivities {
CreateNote(CreateNote),
UpdateNote(UpdateNote),
It will generate this:
ⓘ
impl ActivityHandler for PersonInboxActivities {
async fn verify(
&self,
context: &LemmyContext,
request_counter: &mut i32,
) -> Result<(), LemmyError> {
match self {
PersonInboxActivities::CreateNote(a) => a.verify(context, request_counter).await,
PersonInboxActivities::UpdateNote(a) => a.verify(context, request_counter).await,
}
}
async fn receive(
&self,
context: &LemmyContext,
request_counter: &mut i32,
) -> Result<(), LemmyError> {
match self {
PersonInboxActivities::CreateNote(a) => a.receive(context, request_counter).await,
PersonInboxActivities::UpdateNote(a) => a.receive(context, request_counter).await,
}
}
fn common(&self) -> &ActivityCommonFields {
match self {
PersonInboxActivities::CreateNote(a) => a.common(),
PersonInboxActivities::UpdateNote(a) => a.common(),
}
}