use activitystreams_traits::{Link, Object};
use serde_json;
#[derive(Clone, Debug, Default, Deserialize, Serialize, Properties)]
#[serde(rename_all = "camelCase")]
pub struct ActivityProperties {
#[serde(skip_serializing_if = "Option::is_none")]
#[activitystreams(ab(Object, Link))]
pub result: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[activitystreams(ab(Object, Link))]
pub instrument: Option<serde_json::Value>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize, Properties)]
#[serde(rename_all = "camelCase")]
pub struct ActorOptOriginAndTarget {
#[activitystreams(ab(Object, Link))]
pub actor: serde_json::Value,
#[serde(skip_serializing_if = "Option::is_none")]
#[activitystreams(ab(Object, Link))]
pub origin: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[activitystreams(ab(Object, Link))]
pub target: Option<serde_json::Value>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize, Properties)]
#[serde(rename_all = "camelCase")]
pub struct ActorAndObject {
#[activitystreams(ab(Object, Link))]
pub actor: serde_json::Value,
#[activitystreams(ab(Object, Link))]
pub object: serde_json::Value,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize, Properties)]
#[serde(rename_all = "camelCase")]
pub struct ActorObjectAndTarget {
#[activitystreams(ab(Object, Link))]
pub actor: serde_json::Value,
#[activitystreams(ab(Object, Link))]
pub object: serde_json::Value,
#[activitystreams(ab(Object, Link))]
pub target: serde_json::Value,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize, Properties)]
#[serde(rename_all = "camelCase")]
pub struct ActorAndObjectOptTarget {
#[activitystreams(ab(Object, Link))]
pub actor: serde_json::Value,
#[activitystreams(ab(Object, Link))]
pub object: serde_json::Value,
#[serde(skip_serializing_if = "Option::is_none")]
#[activitystreams(ab(Object, Link))]
pub target: Option<serde_json::Value>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize, Properties)]
#[serde(rename_all = "camelCase")]
pub struct ActorAndObjectOptOrigin {
#[activitystreams(ab(Object, Link))]
pub actor: serde_json::Value,
#[activitystreams(ab(Object, Link))]
pub object: serde_json::Value,
#[serde(skip_serializing_if = "Option::is_none")]
#[activitystreams(ab(Object, Link))]
pub origin: Option<serde_json::Value>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize, Properties)]
#[serde(rename_all = "camelCase")]
pub struct ActorAndObjectOptOthers {
#[activitystreams(ab(Object, Link))]
pub actor: serde_json::Value,
#[activitystreams(ab(Object, Link))]
pub object: serde_json::Value,
#[serde(skip_serializing_if = "Option::is_none")]
#[activitystreams(ab(Object, Link))]
pub origin: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[activitystreams(ab(Object, Link))]
pub target: Option<serde_json::Value>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize, Properties)]
#[serde(rename_all = "camelCase")]
pub struct ActorAndOrigin {
#[activitystreams(ab(Object, Link))]
pub actor: serde_json::Value,
#[activitystreams(ab(Object, Link))]
pub origin: serde_json::Value,
}
pub type AcceptProperties = ActorAndObject;
pub type AddProperties = ActorAndObject;
pub type MoveProperties = ActorAndObjectOptOthers;
pub type AnnounceProperties = ActorAndObjectOptTarget;
pub type ArriveProperties = ActorAndOrigin;
pub type BlockProperties = ActorAndObject;
pub type CreateProperties = ActorAndObject;
pub type DeleteProperties = ActorAndObjectOptOrigin;
pub type DislikeProperties = ActorAndObject;
pub type FlagProperties = ActorAndObject;
pub type FollowProperties = ActorAndObject;
pub type IgnoreProperties = ActorAndObject;
pub type InviteProperties = ActorObjectAndTarget;
pub type JoinProperties = ActorAndObject;
pub type LeaveProperties = ActorAndObject;
pub type LikeProperties = ActorAndObject;
pub type ListenProperties = ActorAndObject;
pub type OfferProperties = ActorAndObjectOptTarget;
#[derive(Clone, Debug, Default, Deserialize, Serialize, Properties)]
#[serde(rename_all = "camelCase")]
pub struct QuestionProperties {
#[serde(skip_serializing_if = "Option::is_none")]
#[activitystreams(ab(Object, Link))]
pub one_of: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
#[activitystreams(ab(Object, Link))]
pub any_of: Option<serde_json::Value>,
}
pub type ReadProperties = ActorAndObject;
pub type RejectProperties = ActorAndObject;
pub type RemoveProperties = ActorAndObjectOptOthers;
pub type TentativeAcceptProperties = ActorAndObject;
pub type TentativeRejectProperties = ActorAndObject;
pub type TravelProperties = ActorOptOriginAndTarget;
pub type UndoProperties = ActorAndObject;
pub type UpdateProperties = ActorAndObject;
pub type ViewProperties = ActorAndObject;