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}