# Trait serde::ser::Error [−] [src]

    pub trait Error: Sized + StdError {
        fn custom<T>(msg: T) -> Self
        where
            T: Display;
    }

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

### `fn custom<T>(msg: T) -> Self where
T: Display,` [src]

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

Loading content...

## Implementations on Foreign Types

### `impl Error for Error` [src]

#### `fn custom<T: Display>(_msg: T) -> Self` [src]

Loading content...

## Implementors

### `impl Error for serde::de::value::Error` [src]

#### `fn custom<T>(msg: T) -> Self where
T: Display,` [src]

Loading content...