# Struct serde::ser::Impossible [−] [src]

    pub struct Impossible<Ok, Error> { /* fields omitted */ }

Helper type for implementing a `Serializer` that does not support serializing one of the compound types.

This type cannot be instantiated, but implements every one of the traits corresponding to the `Serializer` compound types: `SerializeSeq`, `SerializeTuple`, `SerializeTupleStruct`, `SerializeTupleVariant`, `SerializeMap`, `SerializeStruct`, and `SerializeStructVariant`.

ⓘ

    impl Serializer for MySerializer {
        type Ok = ();
        type Error = Error;

        type SerializeSeq = Impossible<(), Error>;
        /* other associated types */

        /// This data format does not support serializing sequences.
        fn serialize_seq(self,
                         len: Option<usize>)
                         -> Result<Self::SerializeSeq, Error> {
            // Given Impossible cannot be instantiated, the only
            // thing we can do here is to return an error.
            Err(...)
        }

        /* other Serializer methods */
    }

## Trait Implementations

### `impl<Ok, Error> SerializeMap for Impossible<Ok, Error> where
Error: Error,` [src]

#### `type Ok = Ok`

Must match the `Ok` type of our `Serializer`.

#### `type Error = Error`

Must match the `Error` type of our `Serializer`.

#### `fn serialize_key<T: ?Sized>(&mut self, key: &T) -> Result<(), Error> where
T: Serialize,` [src]

Serialize a map key. Read more

#### `fn serialize_value<T: ?Sized>(&mut self, value: &T) -> Result<(), Error> where
T: Serialize,` [src]

Serialize a map value. Read more

#### `fn end(self) -> Result<Ok, Error>` [src]

Finish serializing a map.

#### `fn serialize_entry<K: ?Sized, V: ?Sized>(
&mut self,
key: &K,
value: &V
) -> Result<(), Self::Error> where
K: Serialize,
V: Serialize,` [src]

Serialize a map entry consisting of a key and a value. Read more

### `impl<Ok, Error> SerializeSeq for Impossible<Ok, Error> where
Error: Error,` [src]

#### `type Ok = Ok`

Must match the `Ok` type of our `Serializer`.

#### `type Error = Error`

Must match the `Error` type of our `Serializer`.

#### `fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), Error> where
T: Serialize,` [src]

Serialize a sequence element.

#### `fn end(self) -> Result<Ok, Error>` [src]

Finish serializing a sequence.

### `impl<Ok, Error> SerializeStruct for Impossible<Ok, Error> where
Error: Error,` [src]

#### `type Ok = Ok`

Must match the `Ok` type of our `Serializer`.

#### `type Error = Error`

Must match the `Error` type of our `Serializer`.

#### `fn serialize_field<T: ?Sized>(
&mut self,
key: &'static str,
value: &T
) -> Result<(), Error> where
T: Serialize,` [src]

Serialize a struct field.

#### `fn end(self) -> Result<Ok, Error>` [src]

Finish serializing a struct.

#### `fn skip_field(&mut self, key: &'static str) -> Result<(), Self::Error>` [src]

Indicate that a struct field has been skipped.

### `impl<Ok, Error> SerializeStructVariant for Impossible<Ok, Error> where
Error: Error,` [src]

#### `type Ok = Ok`

Must match the `Ok` type of our `Serializer`.

#### `type Error = Error`

Must match the `Error` type of our `Serializer`.

#### `fn serialize_field<T: ?Sized>(
&mut self,
key: &'static str,
value: &T
) -> Result<(), Error> where
T: Serialize,` [src]

Serialize a struct variant field.

#### `fn end(self) -> Result<Ok, Error>` [src]

Finish serializing a struct variant.

#### `fn skip_field(&mut self, key: &'static str) -> Result<(), Self::Error>` [src]

Indicate that a struct variant field has been skipped.

### `impl<Ok, Error> SerializeTuple for Impossible<Ok, Error> where
Error: Error,` [src]

#### `type Ok = Ok`

Must match the `Ok` type of our `Serializer`.

#### `type Error = Error`

Must match the `Error` type of our `Serializer`.

#### `fn serialize_element<T: ?Sized>(&mut self, value: &T) -> Result<(), Error> where
T: Serialize,` [src]

Serialize a tuple element.

#### `fn end(self) -> Result<Ok, Error>` [src]

Finish serializing a tuple.

### `impl<Ok, Error> SerializeTupleStruct for Impossible<Ok, Error> where
Error: Error,` [src]

#### `type Ok = Ok`

Must match the `Ok` type of our `Serializer`.

#### `type Error = Error`

Must match the `Error` type of our `Serializer`.

#### `fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), Error> where
T: Serialize,` [src]

Serialize a tuple struct field.

#### `fn end(self) -> Result<Ok, Error>` [src]

Finish serializing a tuple struct.

### `impl<Ok, Error> SerializeTupleVariant for Impossible<Ok, Error> where
Error: Error,` [src]

#### `type Ok = Ok`

Must match the `Ok` type of our `Serializer`.

#### `type Error = Error`

Must match the `Error` type of our `Serializer`.

#### `fn serialize_field<T: ?Sized>(&mut self, value: &T) -> Result<(), Error> where
T: Serialize,` [src]

Serialize a tuple variant field.

#### `fn end(self) -> Result<Ok, Error>` [src]

Finish serializing a tuple variant.

## Auto Trait Implementations

### `impl<Ok, Error> RefUnwindSafe for Impossible<Ok, Error> where
Error: RefUnwindSafe,
Ok: RefUnwindSafe,`

### `impl<Ok, Error> Send for Impossible<Ok, Error> where
Error: Send,
Ok: Send,`

### `impl<Ok, Error> Sync for Impossible<Ok, Error> where
Error: Sync,
Ok: Sync,`

### `impl<Ok, Error> Unpin for Impossible<Ok, Error> where
Error: Unpin,
Ok: Unpin,`

### `impl<Ok, Error> UnwindSafe for Impossible<Ok, Error> where
Error: UnwindSafe,
Ok: UnwindSafe,`

## Blanket Implementations

### `impl<T> Any for T where
T: 'static + ?Sized,` [src]

#### `pub fn type_id(&self) -> TypeId` [src]

Gets the `TypeId` of `self`. Read more

### `impl<T> Borrow<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow(&self) -> &Tⓘ

### Notable traits for &'_ mut R

`impl<'_, R> Read for &'_ mut R where
R: Read + ?Sized, impl<'_, W> Write for &'_ mut W where
W: Write + ?Sized, impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized, type Output = <F as Future>::Output;impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;`
` [src]

Immutably borrows from an owned value. Read more

### `impl<T> BorrowMut<T> for T where
T: ?Sized,` [src]

#### `pub fn borrow_mut(&mut self) -> &mut Tⓘ

### Notable traits for &'_ mut R

`impl<'_, R> Read for &'_ mut R where
R: Read + ?Sized, impl<'_, W> Write for &'_ mut W where
W: Write + ?Sized, impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized, type Output = <F as Future>::Output;impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;`
` [src]

Mutably borrows from an owned value. Read more

### `impl<T> From<T> for T` [src]

#### `pub fn from(t: T) -> T` [src]

Performs the conversion.

### `impl<T, U> Into<U> for T where
U: From<T>,` [src]

#### `pub fn into(self) -> U` [src]

Performs the conversion.

### `impl<T, U> TryFrom<U> for T where
U: Into<T>,` [src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

#### `pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>` [src]

Performs the conversion.

### `impl<T, U> TryInto<U> for T where
U: TryFrom<T>,` [src]

#### `type Error = <U as TryFrom<T>>::Error`

The type returned in the event of a conversion error.

#### `pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>` [src]

Performs the conversion.