Skip to main content

SerializeRef

Struct SerializeRef 

Source
pub struct SerializeRef<'a> { /* private fields */ }
Expand description

A reference to a value that is serialized.

This is the type erased form of a Serialize value (and an adapter if it’s serialized with one). The serializers of the data formats receive the values as references, for instance from the SerializeDriver. The methods of the reference invoke the ones of Serialize.

use deser::adapters::DisplayFromStr;
use deser::ser::SerializeRef;

let value = 42u32;
assert!(!SerializeRef::new(&value).is_optional());

// serializes as string
let value = SerializeRef::serialize_as::<DisplayFromStr, _>(&value);

Deserialization has no equivalent: values are type erased by creating their Sink (see Deserialize::deserialize_into), which is already in the middle of deserializing them.

Implementations§

Source§

impl<'a> SerializeRef<'a>

Source

pub fn new<T: Serialize>(value: &'a T) -> SerializeRef<'a>

Creates a reference to a value.

Source

pub fn serialize_as<A: Serialize<T>, T: Sync>(value: &'a T) -> SerializeRef<'a>

Creates a reference to a value that is serialized with an adapter.

See adapters.

Source

pub fn serialize(self, state: &mut State) -> Result<Emit<'a>, Error>

Serializes the value (see Serialize::serialize).

Source

pub fn finish(self, state: &mut State) -> Result<(), Error>

Invoked after the serialization finished (see Serialize::finish).

Source

pub fn is_optional(self) -> bool

Checks if the value is optional (see Serialize::is_optional).

Source

pub fn container_shape(self) -> ContainerShape

Returns the shape of the value (see Serialize::container_shape).

Source

pub fn describe(self, d: &mut dyn Describe)

Describes the Rust shape of the value (see Serialize::describe).

Trait Implementations§

Source§

impl<'a> Clone for SerializeRef<'a>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<'a> Copy for SerializeRef<'a>

Source§

impl Debug for SerializeRef<'_>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a, T: Serialize> From<&'a T> for SerializeRef<'a>

Source§

fn from(value: &'a T) -> SerializeRef<'a>

Converts to this type from the input type.
Source§

impl<'a> From<SerializeRef<'a>> for SerializeHandle<'a>

Source§

fn from(value: SerializeRef<'a>) -> SerializeHandle<'a>

Converts to this type from the input type.
Source§

impl Serialize for SerializeRef<'_>

Source§

fn serialize<'b>(value: &'b Self, state: &mut State) -> Result<Emit<'b>, Error>

Serializes the value.
Source§

fn finish(value: &Self, state: &mut State) -> Result<(), Error>

Invoked after the serialization finished. Read more
Source§

fn is_optional(value: &Self) -> bool

Checks if the value represents an optional value. Read more
Source§

fn container_shape(value: &Self) -> ContainerShape

Returns the shape of the value if it’s a map or sequence. Read more
Source§

fn describe(value: &Self, d: &mut dyn Describe)

Describes the Rust shape of the value. Read more

Auto Trait Implementations§

§

impl<'a> !RefUnwindSafe for SerializeRef<'a>

§

impl<'a> !UnwindSafe for SerializeRef<'a>

§

impl<'a> Freeze for SerializeRef<'a>

§

impl<'a> Send for SerializeRef<'a>

§

impl<'a> Sync for SerializeRef<'a>

§

impl<'a> Unpin for SerializeRef<'a>

§

impl<'a> UnsafeUnpin for SerializeRef<'a>

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = !

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

fn try_from(value: U) -> Result<T, !>

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.