[][src]Module activitystreams::prelude

Extension traits that provide the majority of the helper methods of the crate

use activitystreams::{
    activity::Create,
    actor::{ApActor, Person},
    context,
    prelude::*,
    public,
    object::{ApObject, Image, Video},
    security,
    uri,
};
use chrono::Duration;

let mut person = ApActor::new(
    uri!("http://localhost:8080/inbox"),
    Person::new(),
);
person
    .set_outbox(uri!("http:/localhost:8080/outbox"))
    .set_name("Demo Account")
    .set_preferred_username("demo")
    .set_id(uri!("https://localhost:8080/actor"))
    .set_url(uri!("https://localhost:8080/actor"));

let mut preview = Image::new();

preview
    .set_url(uri!("https://localhost:8080/preview.png"))
    .set_media_type("image/png".parse()?)
    .set_id(uri!("https://localhostst:8080/preview.png"));

let mut video = ApObject::new(Video::new());

video
    .set_id(uri!("http://localhost:8080/video.webm"))
    .set_url(uri!("http://localhost:8080/video.webm"))
    .set_media_type("video/webm".parse()?)
    .set_summary("A cool video")
    .set_preview(preview.into_any_base()?)
    .set_duration(Duration::minutes(4) + Duration::seconds(20))
    .set_shares(uri!("http://localhost:8080/video.webm#shares"));

let mut activity = Create::new(
    person.into_any_base()?,
    video.into_any_base()?
);

activity
    .set_many_tos(vec![public()]);

Re-exports

pub use crate::activity::ActivityExt;
pub use crate::activity::ActorAndObjectRefExt;
pub use crate::activity::OptOriginRefExt;
pub use crate::activity::OptTargetRefExt;
pub use crate::activity::OriginRefExt;
pub use crate::activity::QuestionExt;
pub use crate::activity::TargetRefExt;
pub use crate::actor::ApActorExt;
pub use crate::base::BaseExt;
pub use crate::base::ExtendsExt;
pub use crate::collection::CollectionExt;
pub use crate::collection::CollectionPageExt;
pub use crate::collection::OrderedCollectionPageExt;
pub use crate::link::LinkExt;
pub use crate::object::ApObjectExt;
pub use crate::object::ObjectExt;
pub use crate::object::PlaceExt;
pub use crate::object::ProfileExt;
pub use crate::object::RelationshipExt;
pub use crate::object::TombstoneExt;