Crate pb_jelly[][src]


pub use crate::reflection::Reflection;


Blanket-implemented erased typings for the types used throughout the serialization portion of this crate, to allow for implementation of the proto message field reflection API.


A wrapper around a Write which copies all Lazy data into the underlying Writer.

Describes a field within a message. Provides rudimentary support for the proto field reflection API, with the intention of being able to serialize or introspect fields individually without having knowledge of the structure of the specific message itself. For more info, see:

A wrapper around a PbBuffer, which implements Message.

Trait implemented by all the messages defined in proto files. Provides rudimentary support for message descriptor, mostly as a way to get the type name for a given message rather than trying to implement the full reflection API. For more info, see:

Describes a oneof.



Trait implemented by enums which are generated with the err_if_default option. Note that these enums are not forward compatible, since they do not handle unrecognized enum variants (and will fail to deserialize instead).

Trait implemented by all the messages defined in proto files and base datatypes like string, bytes, etc. The exact details of this trait is implemented for messages and base types can be found at -

Trait implemented by enums to help with serialization and deserialization.

A stand-in trait for any backing buffer store. PbBuffers are expected to own references to the data they reference, and should be cheap (constant-time) to clone.

All concrete types which are used for deserialization should implement PbBufferReader, which includes functions to convert to and from PbBuffer.

All concrete types used for serialization should implement PbBufferWriter in order to support serializing Lazy fields without copies.

Marker trait for proto enums.


If B1 and B2 are the same type, returns a function to cast B1 -> B2; otherwise None. Used to implement PbBuffer casting.