example-types: Add generic activity type
This commit is contained in:
parent
8f40415cb5
commit
fe7e417e40
|
@ -8,6 +8,39 @@ use std::{
|
|||
};
|
||||
use url::Url;
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
pub enum ActivityType {
|
||||
Create,
|
||||
Update,
|
||||
Delete,
|
||||
Undo,
|
||||
Follow,
|
||||
Accept,
|
||||
Reject,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
pub struct AcceptedActivity {
|
||||
id: ObjectId<ActivityType>,
|
||||
|
||||
#[serde(rename = "type")]
|
||||
kind: ActivityType,
|
||||
}
|
||||
|
||||
impl AcceptedActivity {
|
||||
pub fn id(&self) -> &ObjectId<ActivityType> {
|
||||
&self.id
|
||||
}
|
||||
}
|
||||
|
||||
impl Dereference for ObjectId<ActivityType> {
|
||||
type Output = AcceptedActivity;
|
||||
|
||||
fn url(&self) -> &Url {
|
||||
&self.0
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, serde::Deserialize, serde::Serialize)]
|
||||
#[serde(transparent)]
|
||||
pub struct ObjectId<Kind>(apub_core::object_id::ObjectId<Kind>);
|
||||
|
|
Loading…
Reference in a new issue