Skip to main content

Module dynamic

Module dynamic 

Source
Available on crate feature dynamic only.
Expand description

Runtime-typed protobuf messages keyed by crate::MessageDescriptor.

Phase 2a delivers DynamicMessage — a message whose field set is discovered at runtime from a descriptor. Use it when the wire schema is known but the Rust type is not (e.g. proto-aware proxies, schema migration tools, generic CLIs).

§Examples

use buffa_reflect::{DescriptorPool, DynamicMessage};

let bytes: &[u8] = &[];
let pool = DescriptorPool::decode(bytes)?;
let descriptor = pool.get_message_by_name("acme.v1.User").unwrap();

let wire: &[u8] = &[];
let mut dyn_msg = DynamicMessage::decode(descriptor, wire)?;
dyn_msg.set_field_by_name("name", "Alice".into());
let bytes = dyn_msg.encode_to_vec();

Structs§

DynamicMessage
A protobuf message whose schema is known at runtime via a MessageDescriptor.
UnknownField
A single unknown field (field number + wire data).
UnknownFieldSet
All unknown wire-tags observed for a single field number.

Enums§

MapKey
A protobuf map key.
SetFieldError
Reasons super::DynamicMessage::try_set_field (and friends) can fail.
Value
A protobuf field value carried by super::DynamicMessage.