pub trait ReflectMessage: Debug + Sized {
// Required methods
fn descriptor(&self) -> &ReflectMessageDescriptor;
fn get_field_value(&self, field_id: FieldId) -> Result<FieldValue, Error>;
fn encode(&self) -> Result<Vec<u8>, Error>;
// Provided methods
fn full_name(&self) -> &str { ... }
fn fields(&self) -> &HashMap<FieldId, FieldDescriptor> { ... }
fn get_field(&self, id: FieldId) -> Option<&FieldDescriptor> { ... }
fn encode_to_prost_any(&self) -> Result<Any, Error> { ... }
fn encode_json(&self, registry: &Registry) -> Result<Value, Error> { ... }
}Required Methods§
fn descriptor(&self) -> &ReflectMessageDescriptor
fn get_field_value(&self, field_id: FieldId) -> Result<FieldValue, Error>
fn encode(&self) -> Result<Vec<u8>, Error>
Provided Methods§
fn full_name(&self) -> &str
fn fields(&self) -> &HashMap<FieldId, FieldDescriptor>
fn get_field(&self, id: FieldId) -> Option<&FieldDescriptor>
fn encode_to_prost_any(&self) -> Result<Any, Error>
fn encode_json(&self, registry: &Registry) -> Result<Value, Error>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".