Expand description

Reflection implementation for protobuf data

Generated vs dynamic

rust-protobuf supports reflection for both:

  • generated messages (generated rust code)
  • dynamic messages (created from arbitrary FileDescriptorProto without code generation)

The API to work with these types of messages is the same.

API

The API roughly follows Google protobuf C++ and Java API. Some minor adjustements are made to make code more idiomatic to rust.

Structs

Dynamic representation of enum type.

Description for enum variant.

Field descriptor.

Reflection for objects defined in .proto file (messages, enums, etc).

Dynamic representation of message type.

Wrapper around either MessageFull reference or a container for an empty dynamic message.

Service method descriptor.

Oneof descriptor.

Parameter for ReflectEq.

Dynamic mutable reference to map field

Dynamic reference to map field

Singular field field and value type.

Dynamic mutable reference to repeated field

Dynamic reference to repeated field

Dynamic representation of service type.

Enums

Reference to a value stored in a field, optional, repeated or map.

Owner value of any elementary type

A reference to a value

Reflective representation of field type.

Runtime representation of elementary protobuf type.

.proto file syntax.

Traits

Type implemented by all protobuf singular types (primitives, string, messages, enums).

Special version of eq.