magnetar/ext_activity_pub/src/link/mod.rs

45 lines
1.6 KiB
Rust

use crate::object::RefObjectLinkUnion;
use crate::OneOrMore;
use crate::{def_ld, ld_document, Id, ObjectRaw};
use serde::{Deserialize, Serialize};
pub mod link_types;
#[derive(Clone, Default, Debug, Serialize, Deserialize)]
pub struct Link {
#[serde(rename = "https://www.w3.org/ns/activitystreams#href")]
#[serde(skip_serializing_if = "Option::is_none")]
pub href: Option<String>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#hreflang")]
#[serde(skip_serializing_if = "Option::is_none")]
pub href_lang: Option<String>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#mediaType")]
#[serde(skip_serializing_if = "Option::is_none")]
pub media_type: Option<String>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#rel")]
#[serde(skip_serializing_if = "Option::is_none")]
pub rel: Option<OneOrMore<String>>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#name")]
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#width")]
#[serde(skip_serializing_if = "Option::is_none")]
pub width: Option<u32>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#height")]
#[serde(skip_serializing_if = "Option::is_none")]
pub height: Option<u32>,
#[serde(rename = "https://www.w3.org/ns/activitystreams#preview")]
#[serde(skip_serializing_if = "Option::is_none")]
pub preview: Option<OneOrMore<RefObjectLinkUnion>>,
}
def_ld!("https://www.w3.org/ns/activitystreams#Link", Link);
ld_document!(RefLink, Link);