pub trait Error: Sized + StdError {
    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

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")),
        }
    }
}

Implementations on Foreign Types

Implementors