Trait capnp::traits::Owned
[−]
[src]
pub trait Owned<'a> {
type Reader: FromPointerReader<'a> + SetPointerBuilder<Self::Builder>;
type Builder: FromPointerBuilder<'a>;
}Associated types hackery that allows us to reason about Cap'n Proto types
without needing to give them a lifetime 'a.
If Foo is a Cap'n Proto struct and Bar is a Rust-native struct, then
foo::Reader<'a> is to foo::Owned as &'a Bar is to Bar, and
foo::Builder<'a> is to foo::Owned as &'a mut Bar is to Bar.
The relationship is formalized by an impl <'a> capnp::traits::Owned<'a> for foo::Owned.
Because Cap'n Proto struct layout differs from Rust struct layout,
foo::Owned cannot be an inhabited type; it is useful nonetheless
as a type parameter, e.g. for a generic container that owns a Cap'n Proto message
of type T: for<'a> capnp::traits::Owned<'a>.
Associated Types
type Reader: FromPointerReader<'a> + SetPointerBuilder<Self::Builder>
type Builder: FromPointerBuilder<'a>
Implementors
impl<'a> Owned<'a> for Ownedimpl<'a> Owned<'a> for Ownedimpl<'a> Owned<'a> for Ownedimpl<'a, T> Owned<'a> for Owned<T> where T: FromU16impl<'a, T> Owned<'a> for Owned<T> where T: for<'b> Owned<'b>impl<'a, T> Owned<'a> for Owned<T> where T: PrimitiveElementimpl<'a, T> Owned<'a> for Owned<T> where T: for<'b> OwnedStruct<'b>impl<'a> Owned<'a> for Ownedimpl<'a> Owned<'a> for Owned