From cebed39f24e10b19b2c90812932d0cfafacaae92 Mon Sep 17 00:00:00 2001 From: "Aode (lion)" Date: Mon, 29 Nov 2021 19:42:01 -0600 Subject: [PATCH] example-types: implement activitypub traits --- examples/example-types/src/lib.rs | 47 +++++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/examples/example-types/src/lib.rs b/examples/example-types/src/lib.rs index 5102ec7..aeb3a0c 100644 --- a/examples/example-types/src/lib.rs +++ b/examples/example-types/src/lib.rs @@ -1,5 +1,6 @@ use apub::{ - deliver::Activity, + activitypub::{Activity, DeliverableObject, Object}, + deliver::Deliverable, repo::{Dereference, Repo}, session::Session, }; @@ -26,6 +27,46 @@ pub struct AcceptedActivity { #[serde(rename = "type")] kind: ActivityType, + + to: Vec, + + cc: Vec, + + actor: Url, + + object: Url, +} + +impl Object for AcceptedActivity { + type Kind = ActivityType; + + fn id(&self) -> &Url { + &self.id + } + + fn kind(&self) -> &Self::Kind { + &self.kind + } +} + +impl DeliverableObject for AcceptedActivity { + fn to(&self) -> &[Url] { + &self.to + } + + fn cc(&self) -> &[Url] { + &self.cc + } +} + +impl Activity for AcceptedActivity { + fn actor_id(&self) -> &Url { + &self.actor + } + + fn object_id(&self) -> &Url { + &self.object + } } impl AcceptedActivity { @@ -101,7 +142,7 @@ impl Dereference for ObjectId { type Output = Note; fn url(&self) -> &Url { - &self + self } } @@ -123,4 +164,4 @@ where } } -impl Activity for Note {} +impl Deliverable for Note {}