pub trait Error: Sized + Error {
// Required method
fn custom<T>(msg: T) -> Self
where T: Display;
}
Expand description
Trait used by Serialize
implementations to generically construct
errors belonging to the Serializer
against which they are
currently running.
§Example implementation
The example data format presented on the website shows an error type appropriate for a basic JSON data format.
Required Methods§
Sourcefn custom<T>(msg: T) -> Selfwhere
T: Display,
fn custom<T>(msg: T) -> Selfwhere
T: Display,
Used when a Serialize
implementation encounters any error
while serializing a type.
The message should not be capitalized and should not end with a period.
For example, a filesystem Path
may refuse to serialize
itself if it contains invalid UTF-8 data.
ⓘ
use serde::ser::{self, Serialize, Serializer};
impl Serialize for Path {
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
match self.to_str() {
Some(s) => serializer.serialize_str(s),
None => Err(ser::Error::custom("path contains invalid UTF-8 characters")),
}
}
}
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.