@@ -25,7 +25,7 @@ use any_pointer;
25
25
use private:: arena:: { BuilderArenaImpl , ReaderArenaImpl , BuilderArena , ReaderArena } ;
26
26
use private:: layout;
27
27
use private:: units:: BYTES_PER_WORD ;
28
- use traits:: { FromPointerReader , FromPointerBuilder , SetPointerBuilder } ;
28
+ use traits:: { FromPointerReader , FromPointerBuilder , SetPointerBuilder , Owned } ;
29
29
use { OutputSegments , Result , Word } ;
30
30
31
31
/// Options controlling how data is read.
@@ -180,21 +180,25 @@ impl <S> Reader<S> where S: ReaderSegments {
180
180
/// A reader object that owns the underlying data in the message
181
181
pub struct OwnedReader < S , T >
182
182
where S : ReaderSegments ,
183
- T : for < ' a > :: capnp :: traits :: Owned < ' a > {
183
+ T : for < ' a > Owned < ' a > {
184
184
marker : :: std:: marker:: PhantomData < T > ,
185
- message : :: capnp :: message :: Reader < S > ,
185
+ message : Reader < S > ,
186
186
}
187
187
188
188
impl < S , T > OwnedReader < S , T >
189
189
where S : ReaderSegments ,
190
- T : for < ' a > :: capnp :: traits :: Owned < ' a > {
190
+ T : for < ' a > Owned < ' a > {
191
191
192
- pub fn new ( message : :: capnp :: message :: Reader < :: capnp :: serialize :: OwnedSegments > ) -> Self {
192
+ pub fn new ( message : Reader < S > ) -> Self {
193
193
OwnedReader {
194
194
marker : :: std:: marker:: PhantomData ,
195
195
message : message,
196
196
}
197
197
}
198
+
199
+ pub fn get < ' a > ( & ' a self ) -> Result < <T as Owned < ' a > >:: Reader > {
200
+ self . message . get_root ( )
201
+ }
198
202
}
199
203
200
204
/// An object that allocates memory for a Cap'n Proto message as it is being built.
0 commit comments