Derive Macro lemmy_apub_lib::ActivityHandler[][src]

#[derive(ActivityHandler)]
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(),
    }
  }