serde::ser

Struct Impossible

Source
pub struct Impossible<Ok, Error> { /* private fields */ }
Expand description

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§

Source§

impl<Ok, Error> SerializeMap for Impossible<Ok, Error>
where Error: Error,

Source§

type Ok = Ok

Must match the Ok type of our Serializer.
Source§

type Error = Error

Must match the Error type of our Serializer.
Source§

fn serialize_key<T>(&mut self, key: &T) -> Result<(), Error>
where T: ?Sized + Serialize,

Serialize a map key. Read more
Source§

fn serialize_value<T>(&mut self, value: &T) -> Result<(), Error>
where T: ?Sized + Serialize,

Serialize a map value. Read more
Source§

fn end(self) -> Result<Ok, Error>

Finish serializing a map.
Source§

fn serialize_entry<K, V>( &mut self, key: &K, value: &V, ) -> Result<(), Self::Error>
where K: ?Sized + Serialize, V: ?Sized + Serialize,

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

impl<Ok, Error> SerializeSeq for Impossible<Ok, Error>
where Error: Error,

Source§

type Ok = Ok

Must match the Ok type of our Serializer.
Source§

type Error = Error

Must match the Error type of our Serializer.
Source§

fn serialize_element<T>(&mut self, value: &T) -> Result<(), Error>
where T: ?Sized + Serialize,

Serialize a sequence element.
Source§

fn end(self) -> Result<Ok, Error>

Finish serializing a sequence.
Source§

impl<Ok, Error> SerializeStruct for Impossible<Ok, Error>
where Error: Error,

Source§

type Ok = Ok

Must match the Ok type of our Serializer.
Source§

type Error = Error

Must match the Error type of our Serializer.
Source§

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

Serialize a struct field.
Source§

fn end(self) -> Result<Ok, Error>

Finish serializing a struct.
Source§

fn skip_field(&mut self, key: &'static str) -> Result<(), Self::Error>

Indicate that a struct field has been skipped. Read more
Source§

impl<Ok, Error> SerializeStructVariant for Impossible<Ok, Error>
where Error: Error,

Source§

type Ok = Ok

Must match the Ok type of our Serializer.
Source§

type Error = Error

Must match the Error type of our Serializer.
Source§

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

Serialize a struct variant field.
Source§

fn end(self) -> Result<Ok, Error>

Finish serializing a struct variant.
Source§

fn skip_field(&mut self, key: &'static str) -> Result<(), Self::Error>

Indicate that a struct variant field has been skipped. Read more
Source§

impl<Ok, Error> SerializeTuple for Impossible<Ok, Error>
where Error: Error,

Source§

type Ok = Ok

Must match the Ok type of our Serializer.
Source§

type Error = Error

Must match the Error type of our Serializer.
Source§

fn serialize_element<T>(&mut self, value: &T) -> Result<(), Error>
where T: ?Sized + Serialize,

Serialize a tuple element.
Source§

fn end(self) -> Result<Ok, Error>

Finish serializing a tuple.
Source§

impl<Ok, Error> SerializeTupleStruct for Impossible<Ok, Error>
where Error: Error,

Source§

type Ok = Ok

Must match the Ok type of our Serializer.
Source§

type Error = Error

Must match the Error type of our Serializer.
Source§

fn serialize_field<T>(&mut self, value: &T) -> Result<(), Error>
where T: ?Sized + Serialize,

Serialize a tuple struct field.
Source§

fn end(self) -> Result<Ok, Error>

Finish serializing a tuple struct.
Source§

impl<Ok, Error> SerializeTupleVariant for Impossible<Ok, Error>
where Error: Error,

Source§

type Ok = Ok

Must match the Ok type of our Serializer.
Source§

type Error = Error

Must match the Error type of our Serializer.
Source§

fn serialize_field<T>(&mut self, value: &T) -> Result<(), Error>
where T: ?Sized + Serialize,

Serialize a tuple variant field.
Source§

fn end(self) -> Result<Ok, Error>

Finish serializing a tuple variant.

Auto Trait Implementations§

§

impl<Ok, Error> Freeze for Impossible<Ok, Error>

§

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

§

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

§

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

§

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

§

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

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 0 bytes (uninhabited)