45 lines
1.6 KiB
Rust
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);
|