pub struct FieldError {
pub field: String,
pub message: String,
/* private fields */
}Expand description
One failed validation: the field name plus the message without it, as in Rails’ errors.
Error::Invalid carries a list of them; JSON answers group the messages
by field, HTML pages show full_message. Serializes
as {"field": "title", "message": "can't be blank"}; Display writes the
full message.
§Examples
use ocre::FieldError;
let error = FieldError::new("published_at", "is not a valid date");
assert_eq!(error.full_message(), "Published at is not a valid date");
assert_eq!(error.to_string(), error.full_message());Fields§
§field: StringField name as in the form or JSON body ("title", "author_id").
message: StringMessage without the field name ("can't be blank").
Implementations§
Source§impl FieldError
impl FieldError
Sourcepub fn new(field: impl Into<String>, message: impl Into<String>) -> Self
pub fn new(field: impl Into<String>, message: impl Into<String>) -> Self
Builds an error for field with message (without the field name).
§Examples
let error = ocre::FieldError::new("title", "can't be blank");
assert_eq!((error.field.as_str(), error.message.as_str()), ("title", "can't be blank"));Sourcepub fn key(&self) -> Option<&'static str>
pub fn key(&self) -> Option<&'static str>
The Rails translation key of the check that failed ("blank", "too_long"…), if any.
Set by each Validator check; None for FieldError::new,
Validator::check and after Validator::message.
I18n::error_message looks it up
under errors.messages.<key> (and more specific keys).
§Examples
let mut v = ocre::Validator::new();
v.required("title", "").max_length("body", "long text", 3);
let keys: Vec<_> = v.errors().iter().map(|e| e.key()).collect();
assert_eq!(keys, [Some("blank"), Some("too_long")]);
assert_eq!(ocre::FieldError::new("title", "is odd").key(), None);Sourcepub fn full_message(&self) -> String
pub fn full_message(&self) -> String
The message prefixed with the humanized field name: "Title can't be blank".
Like Rails’ full_messages: underscores become spaces, a trailing
_id is dropped and the first letter is capitalized.
§Examples
let error = ocre::FieldError::new("title", "can't be blank");
assert_eq!(error.full_message(), "Title can't be blank");Trait Implementations§
Source§impl Clone for FieldError
impl Clone for FieldError
Source§fn clone(&self) -> FieldError
fn clone(&self) -> FieldError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FieldError
impl Debug for FieldError
Source§impl Display for FieldError
impl Display for FieldError
Source§impl PartialEq for FieldError
Compares the field and the message only, as they are what users see.
impl PartialEq for FieldError
Compares the field and the message only, as they are what users see.