Trait Serialize
pub trait Serialize
A data structure that can be serialized into any data format supported by Serde.
Serde provides Serialize implementations for many Rust primitive and
standard library types. The complete list is [here][crate::ser]. All of
these can be serialized using Serde out of the box.
Additionally, Serde provides a procedural macro called serde_derive to
automatically generate Serialize implementations for structs and enums in
your program. See the derive section of the manual for how to use this.
In rare cases it may be necessary to implement Serialize manually for some
type in your program. See the Implementing Serialize section of the
manual for more about this.
Third-party crates may provide Serialize implementations for types that
they expose. For example the linked-hash-map crate provides a
LinkedHashMap<K, V> type that is serializable by Serde because the crate
provides an implementation of Serialize for it.
Required Methods
fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: Serializer,Serialize this value into the given Serde serializer.
See the Implementing
Serializesection of the manual for more information about how to implement this method.use serde::ser::{Serialize, SerializeStruct, Serializer}; struct Person { name: String, age: u8, phones: Vec<String>, } // This is what #[derive(Serialize)] would generate. impl Serialize for Person { fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> where S: Serializer, { let mut s = serializer.serialize_struct("Person", 3)?; s.serialize_field("name", &self.name)?; s.serialize_field("age", &self.age)?; s.serialize_field("phones", &self.phones)?; s.end() } }
Implementors
impl Serialize for ()impl Serialize for AtomicBoolimpl Serialize for AtomicI16impl Serialize for AtomicI32impl Serialize for AtomicI64impl Serialize for AtomicI8impl Serialize for AtomicIsizeimpl Serialize for AtomicU16impl Serialize for AtomicU32impl Serialize for AtomicU64impl Serialize for AtomicU8impl Serialize for AtomicUsizeimpl Serialize for CStrimpl Serialize for CStringimpl Serialize for Durationimpl Serialize for IpAddrimpl Serialize for Ipv4Addrimpl Serialize for Ipv6Addrimpl Serialize for NonZeroI128impl Serialize for NonZeroI16impl Serialize for NonZeroI32impl Serialize for NonZeroI64impl Serialize for NonZeroI8impl Serialize for NonZeroIsizeimpl Serialize for NonZeroU128impl Serialize for NonZeroU16impl Serialize for NonZeroU32impl Serialize for NonZeroU64impl Serialize for NonZeroU8impl Serialize for NonZeroUsizeimpl Serialize for OsStrimpl Serialize for OsStringimpl Serialize for Pathimpl Serialize for PathBufimpl Serialize for SocketAddrimpl Serialize for SocketAddrV4impl Serialize for SocketAddrV6impl Serialize for Stringimpl Serialize for SystemTimeimpl Serialize for boolimpl Serialize for charimpl Serialize for f32impl Serialize for f64impl Serialize for i128impl Serialize for i16impl Serialize for i32impl Serialize for i64impl Serialize for i8impl Serialize for isizeimpl Serialize for strimpl Serialize for u128impl Serialize for u16impl Serialize for u32impl Serialize for u64impl Serialize for u8impl Serialize for usizeimpl<'a> Serialize for Arguments<'a>impl<'a, T> Serialize for &'a T where T: ?Sized + Serialize,impl<'a, T> Serialize for &'a mut T where T: ?Sized + Serialize,impl<'a, T> Serialize for Cow<'a, T> where T: ?Sized + Serialize + ToOwned,impl<Idx> Serialize for Range<Idx> where Idx: Serialize,impl<Idx> Serialize for RangeFrom<Idx> where Idx: Serialize,impl<Idx> Serialize for RangeInclusive<Idx> where Idx: Serialize,impl<Idx> Serialize for RangeTo<Idx> where Idx: Serialize,impl<K, V> Serialize for BTreeMap<K, V> where K: Serialize, V: Serialize,impl<K, V, H> Serialize for HashMap<K, V, H> where K: Serialize, V: Serialize,impl<T> Serialize for (T,) where T: Serialize,impl<T> Serialize for Arc<T> where T: ?Sized + Serialize,impl<T> Serialize for ArcWeak<T> where T: ?Sized + Serialize,impl<T> Serialize for BTreeSet<T> where T: Serialize,impl<T> Serialize for BinaryHeap<T> where T: Serialize,impl<T> Serialize for Bound<T> where T: Serialize,impl<T> Serialize for Box<T> where T: ?Sized + Serialize,impl<T> Serialize for Cell<T> where T: Serialize + Copy,impl<T> Serialize for LinkedList<T> where T: Serialize,impl<T> Serialize for Mutex<T> where T: ?Sized + Serialize,impl<T> Serialize for Option<T> where T: Serialize,impl<T> Serialize for PhantomData<T> where T: ?Sized,impl<T> Serialize for Rc<T> where T: ?Sized + Serialize,impl<T> Serialize for RcWeak<T> where T: ?Sized + Serialize,impl<T> Serialize for RefCell<T> where T: ?Sized + Serialize,impl<T> Serialize for Reverse<T> where T: Serialize,impl<T> Serialize for RwLock<T> where T: ?Sized + Serialize,impl<T> Serialize for Saturating<T> where T: Serialize,impl<T> Serialize for Vec<T> where T: Serialize,impl<T> Serialize for VecDeque<T> where T: Serialize,impl<T> Serialize for Wrapping<T> where T: Serialize,impl<T> Serialize for [T; 0]impl<T> Serialize for [T; 10] where T: Serialize,impl<T> Serialize for [T; 11] where T: Serialize,impl<T> Serialize for [T; 12] where T: Serialize,impl<T> Serialize for [T; 13] where T: Serialize,impl<T> Serialize for [T; 14] where T: Serialize,impl<T> Serialize for [T; 15] where T: Serialize,impl<T> Serialize for [T; 16] where T: Serialize,impl<T> Serialize for [T; 17] where T: Serialize,impl<T> Serialize for [T; 18] where T: Serialize,impl<T> Serialize for [T; 19] where T: Serialize,impl<T> Serialize for [T; 1] where T: Serialize,impl<T> Serialize for [T; 20] where T: Serialize,impl<T> Serialize for [T; 21] where T: Serialize,impl<T> Serialize for [T; 22] where T: Serialize,impl<T> Serialize for [T; 23] where T: Serialize,impl<T> Serialize for [T; 24] where T: Serialize,impl<T> Serialize for [T; 25] where T: Serialize,impl<T> Serialize for [T; 26] where T: Serialize,impl<T> Serialize for [T; 27] where T: Serialize,impl<T> Serialize for [T; 28] where T: Serialize,impl<T> Serialize for [T; 29] where T: Serialize,impl<T> Serialize for [T; 2] where T: Serialize,impl<T> Serialize for [T; 30] where T: Serialize,impl<T> Serialize for [T; 31] where T: Serialize,impl<T> Serialize for [T; 32] where T: Serialize,impl<T> Serialize for [T; 3] where T: Serialize,impl<T> Serialize for [T; 4] where T: Serialize,impl<T> Serialize for [T; 5] where T: Serialize,impl<T> Serialize for [T; 6] where T: Serialize,impl<T> Serialize for [T; 7] where T: Serialize,impl<T> Serialize for [T; 8] where T: Serialize,impl<T> Serialize for [T; 9] where T: Serialize,impl<T> Serialize for [T] where T: Serialize,impl<T, E> Serialize for Result<T, E> where T: Serialize, E: Serialize,impl<T, H> Serialize for HashSet<T, H> where T: Serialize,impl<T0, T1> Serialize for (T0, T1) where T0: Serialize, T1: Serialize,impl<T0, T1, T2> Serialize for (T0, T1, T2) where T0: Serialize, T1: Serialize, T2: Serialize,impl<T0, T1, T2, T3> Serialize for (T0, T1, T2, T3) where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize,impl<T0, T1, T2, T3, T4> Serialize for (T0, T1, T2, T3, T4) where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize,impl<T0, T1, T2, T3, T4, T5> Serialize for (T0, T1, T2, T3, T4, T5) where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize,impl<T0, T1, T2, T3, T4, T5, T6> Serialize for (T0, T1, T2, T3, T4, T5, T6) where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize,impl<T0, T1, T2, T3, T4, T5, T6, T7> Serialize for (T0, T1, T2, T3, T4, T5, T6, T7) where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize,impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Serialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8) where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize,impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Serialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize,impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Serialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize,impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Serialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize,impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Serialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize,impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Serialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13) where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize, T13: Serialize,impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Serialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14) where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize, T13: Serialize, T14: Serialize,impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Serialize for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15) where T0: Serialize, T1: Serialize, T2: Serialize, T3: Serialize, T4: Serialize, T5: Serialize, T6: Serialize, T7: Serialize, T8: Serialize, T9: Serialize, T10: Serialize, T11: Serialize, T12: Serialize, T13: Serialize, T14: Serialize, T15: Serialize,