aldrin_core/impls/
infallible.rs1use crate::tags::{self, PrimaryTag, Tag};
2use crate::{Deserialize, DeserializeError, Deserializer, Serialize, SerializeError, Serializer};
3use std::convert::Infallible;
4
5impl PrimaryTag for Infallible {
6 type Tag = tags::Infallible;
7}
8
9impl<T: Tag> Serialize<T> for Infallible {
10 fn serialize(self, _serializer: Serializer) -> Result<(), SerializeError> {
11 match self {}
12 }
13}
14
15impl<T: Tag> Serialize<T> for &Infallible {
16 fn serialize(self, _serializer: Serializer) -> Result<(), SerializeError> {
17 match *self {}
18 }
19}
20
21impl<T: Tag> Deserialize<T> for Infallible {
22 fn deserialize(_deserializer: Deserializer) -> Result<Self, DeserializeError> {
23 Err(DeserializeError::UnexpectedValue)
24 }
25}