pub struct ExtensionDescriptor { /* private fields */ }Expand description
A linked extension descriptor.
An extension is a field declared outside the message it belongs to —
extend Foo { optional int32 bar = 100; } adds field 100 to Foo from
anywhere that can see Foo. Structurally it is a FieldDescriptor
plus the identity of the message it extends and the fully-qualified name
it is registered under.
The contained field() descriptor is what the
ReflectMessage accessors take —
msg.get(ext.field()) reads an extension exactly like a declared field.
This mirrors protobuf-go, where ExtensionDescriptor is a
FieldDescriptor and the reflective accessors don’t distinguish.
Constructed only by DescriptorPool; not
constructible by downstream crates.
Implementations§
Source§impl ExtensionDescriptor
impl ExtensionDescriptor
Sourcepub fn field(&self) -> &FieldDescriptor
pub fn field(&self) -> &FieldDescriptor
The field this extension adds to the extendee.
Pass this to ReflectMessage
accessors: msg.get(ext.field()), msg.has(ext.field()),
msg.set(ext.field(), value).
The returned descriptor’s
json_name() is not the JSON key
for this extension — extensions serialize as the bracketed
full_name() ("[pkg.ext_name]"), not as a
camelCase field name. A reflection-driven serializer must special-case
extension fields.
Sourcepub fn full_name(&self) -> &str
pub fn full_name(&self) -> &str
Fully-qualified registration name (the JSON "[...]" key without
the brackets).
Sourcepub fn json_key(&self) -> &str
pub fn json_key(&self) -> &str
The JSON object key for this extension: the bracketed
full_name(), e.g. "[pkg.ext_name]".
Sourcepub fn extendee(&self) -> MessageIndex
pub fn extendee(&self) -> MessageIndex
The message this extension extends.
Trait Implementations§
Source§impl AsRef<FieldDescriptor> for ExtensionDescriptor
impl AsRef<FieldDescriptor> for ExtensionDescriptor
Source§fn as_ref(&self) -> &FieldDescriptor
fn as_ref(&self) -> &FieldDescriptor
Equivalent to field(), for generic code that accepts
“anything that is a field descriptor”.
Source§impl Clone for ExtensionDescriptor
impl Clone for ExtensionDescriptor
Source§fn clone(&self) -> ExtensionDescriptor
fn clone(&self) -> ExtensionDescriptor
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more