aldrin_core/impls/
infallible.rs

1use 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}