Struct FieldViolation
pub struct FieldViolation {
pub field: String,
pub description: String,
pub reason: String,
pub localized_message: Option<LocalizedMessage>,
}
Expand description
A message type used to describe a single bad request field.
Fields§
§field: String
A path that leads to a field in the request body. The value will be a sequence of dot-separated identifiers that identify a protocol buffer field.
Consider the following:
message CreateContactRequest {
message EmailAddress {
enum Type {
TYPE_UNSPECIFIED = 0;
HOME = 1;
WORK = 2;
}
optional string email = 1;
repeated EmailType type = 2;
}
string full_name = 1;
repeated EmailAddress email_addresses = 2;
}
In this example, in proto field
could take one of the following values:
full_name
for a violation in thefull_name
valueemail_addresses\[1\].email
for a violation in theemail
field of the firstemail_addresses
messageemail_addresses\[3\].type\[2\]
for a violation in the secondtype
value in the thirdemail_addresses
message.
In JSON, the same values are represented as:
fullName
for a violation in thefullName
valueemailAddresses\[1\].email
for a violation in theemail
field of the firstemailAddresses
messageemailAddresses\[3\].type\[2\]
for a violation in the secondtype
value in the thirdemailAddresses
message.
description: String
A description of why the request element is bad.
reason: String
The reason of the field-level error. This is a constant value that
identifies the proximate cause of the field-level error. It should
uniquely identify the type of the FieldViolation within the scope of the
google.rpc.ErrorInfo.domain. This should be at most 63
characters and match a regular expression of [A-Z][A-Z0-9_]+\[A-Z0-9\]
,
which represents UPPER_SNAKE_CASE.
localized_message: Option<LocalizedMessage>
Provides a localized error message for field-level errors that is safe to return to the API consumer.
Implementations§
§impl FieldViolation
impl FieldViolation
pub const fn const_default() -> FieldViolation
pub fn field_mut(&mut self) -> &mut String
pub fn field_mut(&mut self) -> &mut String
Returns a mutable reference to field
.
If the field is unset, it is first initialized with the default value.
pub fn with_field<T>(self, field: T) -> FieldViolation
pub fn with_field<T>(self, field: T) -> FieldViolation
Sets field
with the provided value.
pub fn description_mut(&mut self) -> &mut String
pub fn description_mut(&mut self) -> &mut String
Returns a mutable reference to description
.
If the field is unset, it is first initialized with the default value.
pub fn set_description<T>(&mut self, field: T)
pub fn set_description<T>(&mut self, field: T)
Sets description
with the provided value.
pub fn with_description<T>(self, field: T) -> FieldViolation
pub fn with_description<T>(self, field: T) -> FieldViolation
Sets description
with the provided value.
pub fn reason_mut(&mut self) -> &mut String
pub fn reason_mut(&mut self) -> &mut String
Returns a mutable reference to reason
.
If the field is unset, it is first initialized with the default value.
pub fn set_reason<T>(&mut self, field: T)
pub fn set_reason<T>(&mut self, field: T)
Sets reason
with the provided value.
pub fn with_reason<T>(self, field: T) -> FieldViolation
pub fn with_reason<T>(self, field: T) -> FieldViolation
Sets reason
with the provided value.
pub fn localized_message(&self) -> &LocalizedMessage
pub fn localized_message(&self) -> &LocalizedMessage
Returns the value of localized_message
, or the default value if localized_message
is unset.
pub fn localized_message_opt_mut(&mut self) -> Option<&mut LocalizedMessage>
pub fn localized_message_opt_mut(&mut self) -> Option<&mut LocalizedMessage>
pub fn localized_message_mut(&mut self) -> &mut LocalizedMessage
pub fn localized_message_mut(&mut self) -> &mut LocalizedMessage
Returns a mutable reference to localized_message
.
If the field is unset, it is first initialized with the default value.
pub fn localized_message_opt(&self) -> Option<&LocalizedMessage>
pub fn localized_message_opt(&self) -> Option<&LocalizedMessage>
pub fn set_localized_message<T>(&mut self, field: T)where
T: Into<LocalizedMessage>,
pub fn set_localized_message<T>(&mut self, field: T)where
T: Into<LocalizedMessage>,
Sets localized_message
with the provided value.
pub fn with_localized_message<T>(self, field: T) -> FieldViolationwhere
T: Into<LocalizedMessage>,
pub fn with_localized_message<T>(self, field: T) -> FieldViolationwhere
T: Into<LocalizedMessage>,
Sets localized_message
with the provided value.
§impl FieldViolation
impl FieldViolation
pub fn new<T>(field: T) -> FieldViolation
pub fn new_at<T>(field: T, index: usize) -> FieldViolation
pub fn nested<T>(self, field: T) -> FieldViolation
pub fn nested_at<T>(self, field: T, index: usize) -> FieldViolation
Trait Implementations§
§impl Clone for FieldViolation
impl Clone for FieldViolation
§fn clone(&self) -> FieldViolation
fn clone(&self) -> FieldViolation
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for FieldViolation
impl Debug for FieldViolation
§impl Default for FieldViolation
impl Default for FieldViolation
§fn default() -> FieldViolation
fn default() -> FieldViolation
§impl<'de> Deserialize<'de> for FieldViolation
impl<'de> Deserialize<'de> for FieldViolation
§fn deserialize<D>(
deserializer: D,
) -> Result<FieldViolation, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<FieldViolation, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
§impl From<FieldViolation> for BadRequest
impl From<FieldViolation> for BadRequest
§fn from(value: FieldViolation) -> BadRequest
fn from(value: FieldViolation) -> BadRequest
Source§impl From<FieldViolation> for RpcError
impl From<FieldViolation> for RpcError
Source§fn from(value: FieldViolation) -> Self
fn from(value: FieldViolation) -> Self
§impl Message for FieldViolation
impl Message for FieldViolation
§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
.§impl PartialEq for FieldViolation
impl PartialEq for FieldViolation
§impl Serialize for FieldViolation
impl Serialize for FieldViolation
§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
impl StructuralPartialEq for FieldViolation
Auto Trait Implementations§
impl Freeze for FieldViolation
impl RefUnwindSafe for FieldViolation
impl Send for FieldViolation
impl Sync for FieldViolation
impl Unpin for FieldViolation
impl UnwindSafe for FieldViolation
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync for T
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self
to type T
. The semantics of numeric casting with the as
operator are followed, so <T as As>::as_::<U>
can be used in the same way as T as U
for numeric conversions. Read more§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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,
§impl<T> Conv for T
impl<T> Conv for T
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self
to use its Binary
implementation when Debug
-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self
to use its Display
implementation when
Debug
-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self
to use its LowerExp
implementation when
Debug
-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self
to use its LowerHex
implementation when
Debug
-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self
to use its Octal
implementation when Debug
-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self
to use its Pointer
implementation when
Debug
-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self
to use its UpperExp
implementation when
Debug
-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self
to use its UpperHex
implementation when
Debug
-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a Request
§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered
].§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self
and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self
, then passes self.as_ref()
into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self
, then passes self.as_mut()
into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self
, then passes self.deref()
into the pipe function.§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> Serialize for T
impl<T> Serialize for T
fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<Ok, Error>
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B>
of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B>
of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R>
view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R>
view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target
of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target
of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap()
only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut()
only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow()
only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut()
only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref()
only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut()
only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref()
only in debug builds, and is erased in release
builds.