1use crate::Ext3;
2use activitystreams::{
3 activity::{
4 Activity, ActivityActor, ActivityObject, AsActivity, AsActivityActor, AsActivityObject,
5 AsOptOrigin, AsOptTarget, AsOrigin, AsQuestion, AsTarget, OptOrigin, OptTarget, Origin,
6 Question, Target,
7 },
8 actor::{ApActor, AsApActor},
9 base::{AsBase, Base},
10 collection::{AsCollection, AsCollectionPage, Collection, CollectionPage},
11 markers,
12 object::{ApObject, AsApObject, AsObject, Object},
13};
14
15impl<Inner, A, B, C> markers::Base for Ext3<Inner, A, B, C> where Inner: markers::Base {}
16impl<Inner, A, B, C> markers::Object for Ext3<Inner, A, B, C> where Inner: markers::Object {}
17impl<Inner, A, B, C> markers::Collection for Ext3<Inner, A, B, C> where Inner: markers::Collection {}
18impl<Inner, A, B, C> markers::CollectionPage for Ext3<Inner, A, B, C> where
19 Inner: markers::CollectionPage
20{
21}
22impl<Inner, A, B, C> markers::Actor for Ext3<Inner, A, B, C> where Inner: markers::Actor {}
23impl<Inner, A, B, C> markers::Activity for Ext3<Inner, A, B, C> where Inner: markers::Activity {}
24impl<Inner, A, B, C> markers::IntransitiveActivity for Ext3<Inner, A, B, C> where
25 Inner: markers::IntransitiveActivity
26{
27}
28
29impl<Inner, A, B, C> AsBase for Ext3<Inner, A, B, C>
30where
31 Inner: AsBase,
32{
33 type Kind = Inner::Kind;
34
35 fn base_ref(&self) -> &Base<Self::Kind> {
36 self.inner.base_ref()
37 }
38
39 fn base_mut(&mut self) -> &mut Base<Self::Kind> {
40 self.inner.base_mut()
41 }
42}
43
44impl<Inner, A, B, C> AsObject for Ext3<Inner, A, B, C>
45where
46 Inner: AsObject,
47{
48 type Kind = Inner::Kind;
49
50 fn object_ref(&self) -> &Object<Self::Kind> {
51 self.inner.object_ref()
52 }
53
54 fn object_mut(&mut self) -> &mut Object<Self::Kind> {
55 self.inner.object_mut()
56 }
57}
58
59impl<Inner, A, B, C> AsApObject for Ext3<Inner, A, B, C>
60where
61 Inner: AsApObject,
62{
63 type Inner = Inner::Inner;
64
65 fn ap_object_ref(&self) -> &ApObject<Self::Inner> {
66 self.inner.ap_object_ref()
67 }
68
69 fn ap_object_mut(&mut self) -> &mut ApObject<Self::Inner> {
70 self.inner.ap_object_mut()
71 }
72}
73
74impl<Inner, A, B, C> AsCollection for Ext3<Inner, A, B, C>
75where
76 Inner: AsCollection,
77{
78 type Kind = Inner::Kind;
79
80 fn collection_ref(&self) -> &Collection<Self::Kind> {
81 self.inner.collection_ref()
82 }
83
84 fn collection_mut(&mut self) -> &mut Collection<Self::Kind> {
85 self.inner.collection_mut()
86 }
87}
88
89impl<Inner, A, B, C> AsCollectionPage for Ext3<Inner, A, B, C>
90where
91 Inner: AsCollectionPage,
92{
93 type Kind = Inner::Kind;
94
95 fn collection_page_ref(&self) -> &CollectionPage<Self::Kind> {
96 self.inner.collection_page_ref()
97 }
98
99 fn collection_page_mut(&mut self) -> &mut CollectionPage<Self::Kind> {
100 self.inner.collection_page_mut()
101 }
102}
103
104impl<Inner, A, B, C> AsApActor for Ext3<Inner, A, B, C>
105where
106 Inner: AsApActor,
107{
108 type Inner = Inner::Inner;
109
110 fn ap_actor_ref(&self) -> &ApActor<Self::Inner> {
111 self.inner.ap_actor_ref()
112 }
113
114 fn ap_actor_mut(&mut self) -> &mut ApActor<Self::Inner> {
115 self.inner.ap_actor_mut()
116 }
117}
118
119impl<Inner, A, B, C> AsActivity for Ext3<Inner, A, B, C>
120where
121 Inner: AsActivity,
122{
123 type Kind = Inner::Kind;
124
125 fn activity_ref(&self) -> &Activity<Self::Kind> {
126 self.inner.activity_ref()
127 }
128
129 fn activity_mut(&mut self) -> &mut Activity<Self::Kind> {
130 self.inner.activity_mut()
131 }
132}
133
134impl<Inner, A, B, C> AsActivityActor for Ext3<Inner, A, B, C>
135where
136 Inner: AsActivityActor,
137{
138 type Inner = Inner::Inner;
139
140 fn activity_actor_ref(&self) -> &ActivityActor<Self::Inner> {
141 self.inner.activity_actor_ref()
142 }
143
144 fn activity_actor_mut(&mut self) -> &mut ActivityActor<Self::Inner> {
145 self.inner.activity_actor_mut()
146 }
147}
148
149impl<Inner, A, B, C> AsActivityObject for Ext3<Inner, A, B, C>
150where
151 Inner: AsActivityObject,
152{
153 type Inner = Inner::Inner;
154
155 fn activity_object_ref(&self) -> &ActivityObject<Self::Inner> {
156 self.inner.activity_object_ref()
157 }
158
159 fn activity_object_mut(&mut self) -> &mut ActivityObject<Self::Inner> {
160 self.inner.activity_object_mut()
161 }
162}
163
164impl<Inner, A, B, C> AsTarget for Ext3<Inner, A, B, C>
165where
166 Inner: AsTarget,
167{
168 type Inner = Inner::Inner;
169
170 fn target_ref(&self) -> &Target<Self::Inner> {
171 self.inner.target_ref()
172 }
173
174 fn target_mut(&mut self) -> &mut Target<Self::Inner> {
175 self.inner.target_mut()
176 }
177}
178
179impl<Inner, A, B, C> AsOrigin for Ext3<Inner, A, B, C>
180where
181 Inner: AsOrigin,
182{
183 type Inner = Inner::Inner;
184
185 fn origin_ref(&self) -> &Origin<Self::Inner> {
186 self.inner.origin_ref()
187 }
188
189 fn origin_mut(&mut self) -> &mut Origin<Self::Inner> {
190 self.inner.origin_mut()
191 }
192}
193
194impl<Inner, A, B, C> AsOptTarget for Ext3<Inner, A, B, C>
195where
196 Inner: AsOptTarget,
197{
198 type Inner = Inner::Inner;
199
200 fn opt_target_ref(&self) -> &OptTarget<Self::Inner> {
201 self.inner.opt_target_ref()
202 }
203
204 fn opt_target_mut(&mut self) -> &mut OptTarget<Self::Inner> {
205 self.inner.opt_target_mut()
206 }
207}
208
209impl<Inner, A, B, C> AsOptOrigin for Ext3<Inner, A, B, C>
210where
211 Inner: AsOptOrigin,
212{
213 type Inner = Inner::Inner;
214
215 fn opt_origin_ref(&self) -> &OptOrigin<Self::Inner> {
216 self.inner.opt_origin_ref()
217 }
218
219 fn opt_origin_mut(&mut self) -> &mut OptOrigin<Self::Inner> {
220 self.inner.opt_origin_mut()
221 }
222}
223
224impl<Inner, A, B, C> AsQuestion for Ext3<Inner, A, B, C>
225where
226 Inner: AsQuestion,
227{
228 fn question_ref(&self) -> &Question {
229 self.inner.question_ref()
230 }
231
232 fn question_mut(&mut self) -> &mut Question {
233 self.inner.question_mut()
234 }
235}