2020-07-25 21:59:15 +00:00
|
|
|
use crate::Ext3;
|
|
|
|
use activitystreams::{
|
|
|
|
activity::{
|
2022-12-06 23:36:34 +00:00
|
|
|
Activity, ActivityActor, ActivityObject, AsActivity, AsActivityActor, AsActivityObject,
|
|
|
|
AsOptOrigin, AsOptTarget, AsOrigin, AsQuestion, AsTarget, OptOrigin, OptTarget, Origin,
|
|
|
|
Question, Target,
|
2020-07-25 21:59:15 +00:00
|
|
|
},
|
|
|
|
actor::{ApActor, AsApActor},
|
2022-12-06 23:36:34 +00:00
|
|
|
base::{AsBase, Base},
|
2020-07-25 21:59:15 +00:00
|
|
|
collection::{AsCollection, AsCollectionPage, Collection, CollectionPage},
|
|
|
|
markers,
|
|
|
|
object::{ApObject, AsApObject, AsObject, Object},
|
|
|
|
};
|
|
|
|
|
|
|
|
impl<Inner, A, B, C> markers::Base for Ext3<Inner, A, B, C> where Inner: markers::Base {}
|
|
|
|
impl<Inner, A, B, C> markers::Object for Ext3<Inner, A, B, C> where Inner: markers::Object {}
|
|
|
|
impl<Inner, A, B, C> markers::Collection for Ext3<Inner, A, B, C> where Inner: markers::Collection {}
|
|
|
|
impl<Inner, A, B, C> markers::CollectionPage for Ext3<Inner, A, B, C> where
|
|
|
|
Inner: markers::CollectionPage
|
|
|
|
{
|
|
|
|
}
|
|
|
|
impl<Inner, A, B, C> markers::Actor for Ext3<Inner, A, B, C> where Inner: markers::Actor {}
|
|
|
|
impl<Inner, A, B, C> markers::Activity for Ext3<Inner, A, B, C> where Inner: markers::Activity {}
|
|
|
|
impl<Inner, A, B, C> markers::IntransitiveActivity for Ext3<Inner, A, B, C> where
|
|
|
|
Inner: markers::IntransitiveActivity
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
impl<Inner, A, B, C> AsBase for Ext3<Inner, A, B, C>
|
2020-07-25 21:59:15 +00:00
|
|
|
where
|
2022-12-06 23:36:34 +00:00
|
|
|
Inner: AsBase,
|
2020-07-25 21:59:15 +00:00
|
|
|
{
|
2022-12-06 23:36:34 +00:00
|
|
|
type Kind = Inner::Kind;
|
|
|
|
|
|
|
|
fn base_ref(&self) -> &Base<Self::Kind> {
|
2020-07-25 21:59:15 +00:00
|
|
|
self.inner.base_ref()
|
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
fn base_mut(&mut self) -> &mut Base<Self::Kind> {
|
2020-07-25 21:59:15 +00:00
|
|
|
self.inner.base_mut()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
impl<Inner, A, B, C> AsObject for Ext3<Inner, A, B, C>
|
2020-07-25 21:59:15 +00:00
|
|
|
where
|
2022-12-06 23:36:34 +00:00
|
|
|
Inner: AsObject,
|
2020-07-25 21:59:15 +00:00
|
|
|
{
|
2022-12-06 23:36:34 +00:00
|
|
|
type Kind = Inner::Kind;
|
|
|
|
|
|
|
|
fn object_ref(&self) -> &Object<Self::Kind> {
|
2020-07-25 21:59:15 +00:00
|
|
|
self.inner.object_ref()
|
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
fn object_mut(&mut self) -> &mut Object<Self::Kind> {
|
2020-07-25 21:59:15 +00:00
|
|
|
self.inner.object_mut()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<Inner, A, B, C, ApInner> AsApObject<ApInner> for Ext3<Inner, A, B, C>
|
|
|
|
where
|
|
|
|
Inner: AsApObject<ApInner>,
|
|
|
|
{
|
|
|
|
fn ap_object_ref(&self) -> &ApObject<ApInner> {
|
|
|
|
self.inner.ap_object_ref()
|
|
|
|
}
|
|
|
|
|
|
|
|
fn ap_object_mut(&mut self) -> &mut ApObject<ApInner> {
|
|
|
|
self.inner.ap_object_mut()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
impl<Inner, A, B, C> AsCollection for Ext3<Inner, A, B, C>
|
2020-07-25 21:59:15 +00:00
|
|
|
where
|
2022-12-06 23:36:34 +00:00
|
|
|
Inner: AsCollection,
|
2020-07-25 21:59:15 +00:00
|
|
|
{
|
2022-12-06 23:36:34 +00:00
|
|
|
type Kind = Inner::Kind;
|
|
|
|
|
|
|
|
fn collection_ref(&self) -> &Collection<Self::Kind> {
|
2020-07-25 21:59:15 +00:00
|
|
|
self.inner.collection_ref()
|
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
fn collection_mut(&mut self) -> &mut Collection<Self::Kind> {
|
2020-07-25 21:59:15 +00:00
|
|
|
self.inner.collection_mut()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
impl<Inner, A, B, C> AsCollectionPage for Ext3<Inner, A, B, C>
|
2020-07-25 21:59:15 +00:00
|
|
|
where
|
2022-12-06 23:36:34 +00:00
|
|
|
Inner: AsCollectionPage,
|
2020-07-25 21:59:15 +00:00
|
|
|
{
|
2022-12-06 23:36:34 +00:00
|
|
|
type Kind = Inner::Kind;
|
|
|
|
|
|
|
|
fn collection_page_ref(&self) -> &CollectionPage<Self::Kind> {
|
2020-07-25 21:59:15 +00:00
|
|
|
self.inner.collection_page_ref()
|
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
fn collection_page_mut(&mut self) -> &mut CollectionPage<Self::Kind> {
|
2020-07-25 21:59:15 +00:00
|
|
|
self.inner.collection_page_mut()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<Inner, A, B, C, ApInner> AsApActor<ApInner> for Ext3<Inner, A, B, C>
|
|
|
|
where
|
|
|
|
Inner: AsApActor<ApInner>,
|
|
|
|
{
|
|
|
|
fn ap_actor_ref(&self) -> &ApActor<ApInner> {
|
|
|
|
self.inner.ap_actor_ref()
|
|
|
|
}
|
|
|
|
|
|
|
|
fn ap_actor_mut(&mut self) -> &mut ApActor<ApInner> {
|
|
|
|
self.inner.ap_actor_mut()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
impl<Inner, A, B, C> AsActivity for Ext3<Inner, A, B, C>
|
2020-07-25 21:59:15 +00:00
|
|
|
where
|
2022-12-06 23:36:34 +00:00
|
|
|
Inner: AsActivity,
|
2020-07-25 21:59:15 +00:00
|
|
|
{
|
2022-12-06 23:36:34 +00:00
|
|
|
type Kind = Inner::Kind;
|
|
|
|
|
|
|
|
fn activity_ref(&self) -> &Activity<Self::Kind> {
|
2020-07-25 21:59:15 +00:00
|
|
|
self.inner.activity_ref()
|
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
fn activity_mut(&mut self) -> &mut Activity<Self::Kind> {
|
2020-07-25 21:59:15 +00:00
|
|
|
self.inner.activity_mut()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
impl<Inner, A, B, C> AsActivityActor for Ext3<Inner, A, B, C>
|
2020-07-25 21:59:15 +00:00
|
|
|
where
|
2022-12-06 23:36:34 +00:00
|
|
|
Inner: AsActivityActor,
|
2020-07-25 21:59:15 +00:00
|
|
|
{
|
2022-12-06 23:36:34 +00:00
|
|
|
type Inner = Inner::Inner;
|
|
|
|
|
|
|
|
fn activity_actor_ref(&self) -> &ActivityActor<Self::Inner> {
|
|
|
|
self.inner.activity_actor_ref()
|
2020-07-25 21:59:15 +00:00
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
fn activity_actor_mut(&mut self) -> &mut ActivityActor<Self::Inner> {
|
|
|
|
self.inner.activity_actor_mut()
|
2020-07-25 21:59:15 +00:00
|
|
|
}
|
2022-12-06 23:36:34 +00:00
|
|
|
}
|
2020-07-25 21:59:15 +00:00
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
impl<Inner, A, B, C> AsActivityObject for Ext3<Inner, A, B, C>
|
|
|
|
where
|
|
|
|
Inner: AsActivityObject,
|
|
|
|
{
|
|
|
|
type Inner = Inner::Inner;
|
|
|
|
|
|
|
|
fn activity_object_ref(&self) -> &ActivityObject<Self::Inner> {
|
|
|
|
self.inner.activity_object_ref()
|
2020-07-25 21:59:15 +00:00
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
fn activity_object_mut(&mut self) -> &mut ActivityObject<Self::Inner> {
|
|
|
|
self.inner.activity_object_mut()
|
2020-07-25 21:59:15 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
impl<Inner, A, B, C> AsTarget for Ext3<Inner, A, B, C>
|
2020-07-25 21:59:15 +00:00
|
|
|
where
|
2022-12-06 23:36:34 +00:00
|
|
|
Inner: AsTarget,
|
2020-07-25 21:59:15 +00:00
|
|
|
{
|
2022-12-06 23:36:34 +00:00
|
|
|
type Inner = Inner::Inner;
|
|
|
|
|
|
|
|
fn target_ref(&self) -> &Target<Self::Inner> {
|
|
|
|
self.inner.target_ref()
|
2020-07-25 21:59:15 +00:00
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
fn target_mut(&mut self) -> &mut Target<Self::Inner> {
|
|
|
|
self.inner.target_mut()
|
2020-07-25 21:59:15 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
impl<Inner, A, B, C> AsOrigin for Ext3<Inner, A, B, C>
|
2020-07-25 21:59:15 +00:00
|
|
|
where
|
2022-12-06 23:36:34 +00:00
|
|
|
Inner: AsOrigin,
|
2020-07-25 21:59:15 +00:00
|
|
|
{
|
2022-12-06 23:36:34 +00:00
|
|
|
type Inner = Inner::Inner;
|
|
|
|
|
|
|
|
fn origin_ref(&self) -> &Origin<Self::Inner> {
|
|
|
|
self.inner.origin_ref()
|
2020-07-25 21:59:15 +00:00
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
fn origin_mut(&mut self) -> &mut Origin<Self::Inner> {
|
|
|
|
self.inner.origin_mut()
|
2020-07-25 21:59:15 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
impl<Inner, A, B, C> AsOptTarget for Ext3<Inner, A, B, C>
|
2020-07-25 21:59:15 +00:00
|
|
|
where
|
2022-12-06 23:36:34 +00:00
|
|
|
Inner: AsOptTarget,
|
2020-07-25 21:59:15 +00:00
|
|
|
{
|
2022-12-06 23:36:34 +00:00
|
|
|
type Inner = Inner::Inner;
|
|
|
|
|
|
|
|
fn opt_target_ref(&self) -> &OptTarget<Self::Inner> {
|
|
|
|
self.inner.opt_target_ref()
|
2020-07-25 21:59:15 +00:00
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
fn opt_target_mut(&mut self) -> &mut OptTarget<Self::Inner> {
|
|
|
|
self.inner.opt_target_mut()
|
2020-07-25 21:59:15 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
impl<Inner, A, B, C> AsOptOrigin for Ext3<Inner, A, B, C>
|
2020-07-25 21:59:15 +00:00
|
|
|
where
|
2022-12-06 23:36:34 +00:00
|
|
|
Inner: AsOptOrigin,
|
2020-07-25 21:59:15 +00:00
|
|
|
{
|
2022-12-06 23:36:34 +00:00
|
|
|
type Inner = Inner::Inner;
|
|
|
|
|
|
|
|
fn opt_origin_ref(&self) -> &OptOrigin<Self::Inner> {
|
|
|
|
self.inner.opt_origin_ref()
|
2020-07-25 21:59:15 +00:00
|
|
|
}
|
|
|
|
|
2022-12-06 23:36:34 +00:00
|
|
|
fn opt_origin_mut(&mut self) -> &mut OptOrigin<Self::Inner> {
|
|
|
|
self.inner.opt_origin_mut()
|
2020-07-25 21:59:15 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
impl<Inner, A, B, C> AsQuestion for Ext3<Inner, A, B, C>
|
|
|
|
where
|
|
|
|
Inner: AsQuestion,
|
|
|
|
{
|
|
|
|
fn question_ref(&self) -> &Question {
|
|
|
|
self.inner.question_ref()
|
|
|
|
}
|
|
|
|
|
|
|
|
fn question_mut(&mut self) -> &mut Question {
|
|
|
|
self.inner.question_mut()
|
|
|
|
}
|
|
|
|
}
|