rustpub 0.1.8

An implementation of the Activitypub types
Documentation
use crate::complex::properties as props;
use crate::complex::properties::*;

use rustpub_macro::activitypub_complex;

// NOTE: any aliases or renames not yet added
activitypub_complex! {
    base_traits {
        ObjectBaseTrait,
        LinkBaseTrait,
    }
    group_traits {
        ActivityTrait: ObjectBaseTrait,
        ActorTrait: ObjectBaseTrait,
        ObjectTrait: ObjectBaseTrait,
        LinkTrait: LinkBaseTrait,
    }
    ActivityTrait {
        Accept extend Activity {},
        Add extend Activity {},
        Announce extend Activity {},
        Arrive extend IntransitiveActivity {},
        Block extend Ignore {},
        Create extend Activity {},
        Delete extend Activity {},
        Dislike extend Activity {},
        Flag extend Activity {},
        Follow extend Activity {},
        Ignore extend Activity {},
        Invite extend Offer {},
        Join extend Activity {},
        Leave extend Activity {},
        Like extend Activity {},
        Listen extend Activity {},
        Move extend Activity {},
        Offer extend Activity {},
        Question extend IntransitiveActivity {
            one_of: OneOf,
            any_of: AnyOf,
            closed: Closed,
        },
        Reject extend Activity {},
        Read extend Activity {},
        Remove extend Activity {},
        TentativeAccept extend Activity {},
        TentativeReject extend Reject {},
        Travel extend IntransitiveActivity {},
        Undo extend Activity {},
        Update extend Activity {},
        View extend Activity {},
    },
    ActorTrait {
        Application extend Object {},
        Group extend Object {},
        Organization extend Object {},
        Person extend Object {},
        Service extend Object {},
    },
    ObjectTrait {
        Object {
            id: Id,
            kind: Kind,
            attachment: Attachment,
            attributed_to: AttributedTo,
            audience: Audience,
            content: Content,
            context: Context,
            name: Name,
            end_time: EndTime,
            generator: Generator,
            icon: Icon,
            image: props::Image,
            in_reply_to: InReplyTo,
            location: Location,
            preview: Preview,
            published: Published,
            replies: Replies,
            start_time: StartTime,
            summary: Summary,
            tag: Tag,
            updated: Updated,
            url: Url,
            to: To,
            bto: BTo,
            cc: CC,
            bcc: BCC,
            media_type: MediaType,
            duration: Duration,
        },
        Activity extend Object {
            actor: props::Actor,
            object: props::Object,
            target: Target,
            result: props::Result,
            origin: Origin,
            instrument: Instrument,
        },
        IntransitiveActivity extend Object {
            actor: props::Actor,
            target: Target,
            result: props::Result,
            origin: Origin,
            instrument: Instrument,
        },
        Collection extend Object {
            total_items: TotalItems,
            current: Current,
            first: First,
            last: Last,
            items: Items,
        },
        OrderedCollection extend Collection {},
        CollectionPage extend Collection {
            part_of: PartOf,
            next: Next,
            prev: Prev,
        },
        OrderedCollectionPage extend CollectionPage {
            start_index: StartIndex,
        },
        Article extend Object {},
        Audio extend Document {},
        Document extend Object {},
        Event extend Object {},
        Image extend Document {},
        Note extend Object {},
        Page extend Document {},
        Place extend Object {
            accuracy: Accuracy,
            altitude: Altitude,
            latitude: Latitude,
            longitude: Longitude,
            radius: Radius,
            units: Units,
        },
        Profile extend Object {
            describes: Describes,
        },
        Relationship extend Object {
            subject: Subject,
            object: props::Object,
            relationship: props::Relationship,
        },
        Tombstone extend Object {
            former_type: FormerType,
            deleted: Deleted,
        },
        Video extend Document {},
    },
    LinkTrait {
        Link {
            kind: Kind,
            href: Href,
            rel: Rel,
            media_type: MediaType,
            name: Name,
            href_lang: HrefLang,
            heigh: Height,
            width: Width,
            preview: Preview,
        },
        Mention extend Link {},
    },
}