pub struct FieldPathElement {
pub field_number: Option<i32>,
pub field_name: Option<String>,
pub field_type: Option<i32>,
pub key_type: Option<i32>,
pub value_type: Option<i32>,
pub subscript: Option<Subscript>,
}
Expand description
FieldPathElement
provides enough information to nest through a single protobuf field.
If the selected field is a map or repeated field, the subscript
value selects a specific element from it.
A path that refers to a value nested under a map key or repeated field index will have a subscript
value.
The field_type
field allows unambiguous resolution of a field even if descriptors are not available.
Fields§
§field_number: Option<i32>
field_number
is the field number this path element refers to.
field_name: Option<String>
field_name
contains the field name this path element refers to.
This can be used to display a human-readable path even if the field number is unknown.
field_type: Option<i32>
field_type
specifies the type of this field. When using reflection, this value is not needed.
This value is provided to make it possible to traverse unknown fields through wire data. When traversing wire data, be mindful of both packed[1] and delimited[2] encoding schemes.
[1]: https://protobuf.dev/programming-guides/encoding/#packed [2]: https://protobuf.dev/programming-guides/encoding/#groups
N.B.: Although groups are deprecated, the corresponding delimited encoding scheme is not, and can be explicitly used in Protocol Buffers 2023 Edition.
key_type: Option<i32>
key_type
specifies the map key type of this field. This value is useful when traversing
unknown fields through wire data: specifically, it allows handling the differences between
different integer encodings.
value_type: Option<i32>
value_type
specifies map value type of this field. This is useful if you want to display a
value inside unknown fields through wire data.
subscript: Option<Subscript>
subscript
contains a repeated index or map key, if this path element nests into a repeated or map field.
Implementations§
Source§impl FieldPathElement
impl FieldPathElement
Sourcepub fn field_number(&self) -> i32
pub fn field_number(&self) -> i32
Returns the value of field_number
, or the default value if field_number
is unset.
Sourcepub fn field_name(&self) -> &str
pub fn field_name(&self) -> &str
Returns the value of field_name
, or the default value if field_name
is unset.
Sourcepub fn field_type(&self) -> Type
pub fn field_type(&self) -> Type
Returns the enum value of field_type
, or the default if the field is unset or set to an invalid enum value.
Sourcepub fn set_field_type(&mut self, value: Type)
pub fn set_field_type(&mut self, value: Type)
Sets field_type
to the provided enum value.
Sourcepub fn key_type(&self) -> Type
pub fn key_type(&self) -> Type
Returns the enum value of key_type
, or the default if the field is unset or set to an invalid enum value.
Sourcepub fn set_key_type(&mut self, value: Type)
pub fn set_key_type(&mut self, value: Type)
Sets key_type
to the provided enum value.
Sourcepub fn value_type(&self) -> Type
pub fn value_type(&self) -> Type
Returns the enum value of value_type
, or the default if the field is unset or set to an invalid enum value.
Sourcepub fn set_value_type(&mut self, value: Type)
pub fn set_value_type(&mut self, value: Type)
Sets value_type
to the provided enum value.
Trait Implementations§
Source§impl Clone for FieldPathElement
impl Clone for FieldPathElement
Source§fn clone(&self) -> FieldPathElement
fn clone(&self) -> FieldPathElement
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for FieldPathElement
impl Debug for FieldPathElement
Source§impl Default for FieldPathElement
impl Default for FieldPathElement
Source§impl Message for FieldPathElement
impl Message for FieldPathElement
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self
.Source§impl PartialEq for FieldPathElement
impl PartialEq for FieldPathElement
impl StructuralPartialEq for FieldPathElement
Auto Trait Implementations§
impl Freeze for FieldPathElement
impl RefUnwindSafe for FieldPathElement
impl Send for FieldPathElement
impl Sync for FieldPathElement
impl Unpin for FieldPathElement
impl UnwindSafe for FieldPathElement
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request