pub struct StringRules {Show 17 fields
pub const: Option<String>,
pub len: Option<u64>,
pub min_len: Option<u64>,
pub max_len: Option<u64>,
pub len_bytes: Option<u64>,
pub min_bytes: Option<u64>,
pub max_bytes: Option<u64>,
pub pattern: Option<String>,
pub prefix: Option<String>,
pub suffix: Option<String>,
pub contains: Option<String>,
pub not_contains: Option<String>,
pub in: Vec<String>,
pub not_in: Vec<String>,
pub strict: Option<bool>,
pub example: Vec<String>,
pub well_known: Option<WellKnown>,
}
Expand description
StringRules describes the rules applied to string
values These
rules may also be applied to the google.protobuf.StringValue
Well-Known-Type.
Fields§
§const: Option<String>
const
requires the field value to exactly match the specified value. If
the field value doesn’t match, an error message is generated.
message MyString {
// value must equal `hello`
string value = 1 \[(buf.validate.field).string.const = "hello"\];
}
len: Option<u64>
len
dictates that the field value must have the specified
number of characters (Unicode code points), which may differ from the number
of bytes in the string. If the field value does not meet the specified
length, an error message will be generated.
message MyString {
// value length must be 5 characters
string value = 1 \[(buf.validate.field).string.len = 5\];
}
min_len: Option<u64>
min_len
specifies that the field value must have at least the specified
number of characters (Unicode code points), which may differ from the number
of bytes in the string. If the field value contains fewer characters, an error
message will be generated.
message MyString {
// value length must be at least 3 characters
string value = 1 \[(buf.validate.field).string.min_len = 3\];
}
max_len: Option<u64>
max_len
specifies that the field value must have no more than the specified
number of characters (Unicode code points), which may differ from the
number of bytes in the string. If the field value contains more characters,
an error message will be generated.
message MyString {
// value length must be at most 10 characters
string value = 1 \[(buf.validate.field).string.max_len = 10\];
}
len_bytes: Option<u64>
len_bytes
dictates that the field value must have the specified number of
bytes. If the field value does not match the specified length in bytes,
an error message will be generated.
message MyString {
// value length must be 6 bytes
string value = 1 \[(buf.validate.field).string.len_bytes = 6\];
}
min_bytes: Option<u64>
min_bytes
specifies that the field value must have at least the specified
number of bytes. If the field value contains fewer bytes, an error message
will be generated.
message MyString {
// value length must be at least 4 bytes
string value = 1 \[(buf.validate.field).string.min_bytes = 4\];
}
max_bytes: Option<u64>
max_bytes
specifies that the field value must have no more than the
specified number of bytes. If the field value contains more bytes, an
error message will be generated.
message MyString {
// value length must be at most 8 bytes
string value = 1 \[(buf.validate.field).string.max_bytes = 8\];
}
pattern: Option<String>
pattern
specifies that the field value must match the specified
regular expression (RE2 syntax), with the expression provided without any
delimiters. If the field value doesn’t match the regular expression, an
error message will be generated.
message MyString {
// value does not match regex pattern `^\[a-zA-Z\]//$`
string value = 1 \[(buf.validate.field).string.pattern = "^[a-zA-Z\]//$"];
}
prefix: Option<String>
prefix
specifies that the field value must have the
specified substring at the beginning of the string. If the field value
doesn’t start with the specified prefix, an error message will be
generated.
message MyString {
// value does not have prefix `pre`
string value = 1 \[(buf.validate.field).string.prefix = "pre"\];
}
suffix: Option<String>
suffix
specifies that the field value must have the
specified substring at the end of the string. If the field value doesn’t
end with the specified suffix, an error message will be generated.
message MyString {
// value does not have suffix `post`
string value = 1 \[(buf.validate.field).string.suffix = "post"\];
}
contains: Option<String>
contains
specifies that the field value must have the
specified substring anywhere in the string. If the field value doesn’t
contain the specified substring, an error message will be generated.
message MyString {
// value does not contain substring `inside`.
string value = 1 \[(buf.validate.field).string.contains = "inside"\];
}
not_contains: Option<String>
not_contains
specifies that the field value must not have the
specified substring anywhere in the string. If the field value contains
the specified substring, an error message will be generated.
message MyString {
// value contains substring `inside`.
string value = 1 \[(buf.validate.field).string.not_contains = "inside"\];
}
in: Vec<String>
in
specifies that the field value must be equal to one of the specified
values. If the field value isn’t one of the specified values, an error
message will be generated.
message MyString {
// value must be in list \["apple", "banana"\]
string value = 1 \[(buf.validate.field).string.in = "apple", (buf.validate.field).string.in = "banana"\];
}
not_in: Vec<String>
not_in
specifies that the field value cannot be equal to any
of the specified values. If the field value is one of the specified values,
an error message will be generated.
message MyString {
// value must not be in list \["orange", "grape"\]
string value = 1 \[(buf.validate.field).string.not_in = "orange", (buf.validate.field).string.not_in = "grape"\];
}
strict: Option<bool>
This applies to regexes HTTP_HEADER_NAME
and HTTP_HEADER_VALUE
to
enable strict header validation. By default, this is true, and HTTP header
validations are RFC-compliant. Setting to false will enable looser
validations that only disallow \r\n\0
characters, which can be used to
bypass header matching rules.
message MyString {
// The field `value` must have be a valid HTTP headers, but not enforced with strict rules.
string value = 1 \[(buf.validate.field).string.strict = false\];
}
example: Vec<String>
example
specifies values that the field may have. These values SHOULD
conform to other rules. example
values will not impact validation
but may be used as helpful guidance on how to populate the given field.
message MyString {
string value = 1 [
(buf.validate.field).string.example = "hello",
(buf.validate.field).string.example = "world"
];
}
well_known: Option<WellKnown>
WellKnown
rules provide advanced rules against common string
patterns.
Implementations§
Source§impl StringRules
impl StringRules
Sourcepub fn const(&self) -> &str
pub fn const(&self) -> &str
Returns the value of const
, or the default value if const
is unset.
Sourcepub fn min_len(&self) -> u64
pub fn min_len(&self) -> u64
Returns the value of min_len
, or the default value if min_len
is unset.
Sourcepub fn max_len(&self) -> u64
pub fn max_len(&self) -> u64
Returns the value of max_len
, or the default value if max_len
is unset.
Sourcepub fn min_bytes(&self) -> u64
pub fn min_bytes(&self) -> u64
Returns the value of min_bytes
, or the default value if min_bytes
is unset.
Sourcepub fn max_bytes(&self) -> u64
pub fn max_bytes(&self) -> u64
Returns the value of max_bytes
, or the default value if max_bytes
is unset.
Sourcepub fn pattern(&self) -> &str
pub fn pattern(&self) -> &str
Returns the value of pattern
, or the default value if pattern
is unset.
Sourcepub fn prefix(&self) -> &str
pub fn prefix(&self) -> &str
Returns the value of prefix
, or the default value if prefix
is unset.
Sourcepub fn suffix(&self) -> &str
pub fn suffix(&self) -> &str
Returns the value of suffix
, or the default value if suffix
is unset.
Sourcepub fn contains(&self) -> &str
pub fn contains(&self) -> &str
Returns the value of contains
, or the default value if contains
is unset.
Sourcepub fn len_bytes(&self) -> u64
pub fn len_bytes(&self) -> u64
Returns the value of len_bytes
, or the default value if len_bytes
is unset.
Sourcepub fn not_contains(&self) -> &str
pub fn not_contains(&self) -> &str
Returns the value of not_contains
, or the default value if not_contains
is unset.
Trait Implementations§
Source§impl Clone for StringRules
impl Clone for StringRules
Source§fn clone(&self) -> StringRules
fn clone(&self) -> StringRules
1.0.0 · Source§const fn clone_from(&mut self, source: &Self)
const fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for StringRules
impl Debug for StringRules
Source§impl Default for StringRules
impl Default for StringRules
Source§impl Message for StringRules
impl Message for StringRules
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 StringRules
impl PartialEq for StringRules
impl StructuralPartialEq for StringRules
Auto Trait Implementations§
impl Freeze for StringRules
impl RefUnwindSafe for StringRules
impl Send for StringRules
impl Sync for StringRules
impl Unpin for StringRules
impl UnwindSafe for StringRules
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