serde_tagged/util/erased.rs
1//! Utilities for de-/serialization with `erased_serde`.
2
3use serde;
4use erased_serde;
5
6
7/// A serializable type that serializes the enclosed value using `erased_serde`.
8pub struct SerializeErased<'b, T: ?Sized + 'b>(pub &'b T);
9
10impl<'b, T> serde::Serialize for SerializeErased<'b, T>
11where
12 T: erased_serde::Serialize + ?Sized
13{
14 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
15 where
16 S: serde::Serializer,
17 {
18 erased_serde::serialize(self.0, serializer)
19 }
20}