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§
- Dynamic
Message - A protobuf message whose schema is known at runtime via a
MessageDescriptor. - Unknown
Field - A single unknown field (field number + wire data).
- Unknown
Field Set - All unknown wire-tags observed for a single field number.
Enums§
- MapKey
- A protobuf map key.
- SetField
Error - Reasons
super::DynamicMessage::try_set_field(and friends) can fail. - Value
- A protobuf field value carried by
super::DynamicMessage.