pub trait SerializeTuple {
type Ok;
type Error: Error;
// Required methods
fn serialize_element<T>(&mut self, value: &T) -> Result<(), Self::Error>
where T: Serialize + ?Sized;
fn end(self) -> Result<Self::Ok, Self::Error>;
}
Expand description
Returned from Serializer::serialize_tuple
.
§Example use
ⓘ
use serde::ser::{Serialize, SerializeTuple, Serializer};
impl<A, B, C> Serialize for (A, B, C)
where
A: Serialize,
B: Serialize,
C: Serialize,
{
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
let mut tup = serializer.serialize_tuple(3)?;
tup.serialize_element(&self.0)?;
tup.serialize_element(&self.1)?;
tup.serialize_element(&self.2)?;
tup.end()
}
}
ⓘ
use serde::ser::{Serialize, SerializeTuple, Serializer};
impl<T> Serialize for [T; 16]
where
T: Serialize,
{
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where
S: Serializer,
{
let mut seq = serializer.serialize_tuple(16)?;
for element in self {
seq.serialize_element(element)?;
}
seq.end()
}
}
§Example implementation
The example data format presented on the website demonstrates an
implementation of SerializeTuple
for a basic JSON data format.
Required Associated Types§
Required Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.