Skip to content

Commit 0df8f2a

Browse files
author
Bradlee Speice
committed
Add the 'get()' method
Also some type fixes
1 parent 0638822 commit 0df8f2a

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/message.rs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ use any_pointer;
2525
use private::arena::{BuilderArenaImpl, ReaderArenaImpl, BuilderArena, ReaderArena};
2626
use private::layout;
2727
use private::units::BYTES_PER_WORD;
28-
use traits::{FromPointerReader, FromPointerBuilder, SetPointerBuilder};
28+
use traits::{FromPointerReader, FromPointerBuilder, SetPointerBuilder, Owned};
2929
use {OutputSegments, Result, Word};
3030

3131
/// Options controlling how data is read.
@@ -180,21 +180,25 @@ impl <S> Reader<S> where S: ReaderSegments {
180180
/// A reader object that owns the underlying data in the message
181181
pub struct OwnedReader<S, T>
182182
where S: ReaderSegments,
183-
T: for<'a> ::capnp::traits::Owned<'a> {
183+
T: for<'a> Owned<'a> {
184184
marker: ::std::marker::PhantomData<T>,
185-
message: ::capnp::message::Reader<S>,
185+
message: Reader<S>,
186186
}
187187

188188
impl <S, T> OwnedReader<S, T>
189189
where S: ReaderSegments,
190-
T : for<'a> ::capnp::traits::Owned<'a> {
190+
T : for<'a> Owned<'a> {
191191

192-
pub fn new(message: ::capnp::message::Reader<::capnp::serialize::OwnedSegments>) -> Self {
192+
pub fn new(message: Reader<S>) -> Self {
193193
OwnedReader {
194194
marker: ::std::marker::PhantomData,
195195
message: message,
196196
}
197197
}
198+
199+
pub fn get<'a> (&'a self) -> Result<<T as Owned<'a>>::Reader> {
200+
self.message.get_root()
201+
}
198202
}
199203

200204
/// An object that allocates memory for a Cap'n Proto message as it is being built.

0 commit comments

Comments
 (0)