magnetar/ext_activity_pub/src/object/actor.rs

69 lines
2.5 KiB
Rust

use crate::object::{RefCollection, RefOrderedCollection};
use crate::{def_ld, ld_document, Id, ObjectRaw};
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActorActivityPubProps {
#[serde(rename = "https://www.w3.org/ns/activitystreams#inbox")]
#[serde(skip_serializing_if = "Option::is_none")]
pub inbox: Option<RefOrderedCollection>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#outbox")]
#[serde(skip_serializing_if = "Option::is_none")]
pub outbox: Option<RefOrderedCollection>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#following")]
#[serde(skip_serializing_if = "Option::is_none")]
pub following: Option<RefCollection>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#followers")]
#[serde(skip_serializing_if = "Option::is_none")]
pub followers: Option<RefCollection>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#liked")]
#[serde(skip_serializing_if = "Option::is_none")]
pub liked: Option<RefCollection>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#shares")]
#[serde(skip_serializing_if = "Option::is_none")]
pub shares: Option<RefCollection>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#preferredUsername")]
#[serde(skip_serializing_if = "Option::is_none")]
pub preferred_username: Option<String>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#endpoints")]
#[serde(skip_serializing_if = "Option::is_none")]
pub endpoints: Option<String>,
}
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActorApplication;
def_ld!("Application", ActorApplication, base as Object);
ld_document!(RefActorApplication, ActorApplication);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActorGroup;
def_ld!("Group", ActorGroup, base as Object);
ld_document!(RefActorGroup, ActorGroup);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActorOrganization;
def_ld!("Organization", ActorOrganization, base as Object);
ld_document!(RefActorOrganization, ActorOrganization);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActorPerson;
def_ld!("Person", ActorPerson, base as Object);
ld_document!(RefActorPerson, ActorPerson);
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct ActorService;
def_ld!("Service", ActorService, base as Object);
ld_document!(RefActorService, ActorService);