1use core::fmt::{Debug, Display};
2
3use crate::gerr::Config;
4
5#[derive(Debug, PartialEq, Eq)]
7pub struct NoID;
8
9impl Display for NoID {
10 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
11 write!(f, "NoID")
12 }
13}
14
15#[cfg(feature = "serde")]
16impl ::serde::Serialize for NoID {
17 fn serialize<S>(&self, serializer: S) -> core::result::Result<S::Ok, S::Error>
18 where
19 S: serde::Serializer,
20 {
21 serializer.serialize_unit()
22 }
23}
24
25#[cfg(feature = "serde")]
26impl<'de> ::serde::Deserialize<'de> for NoID {
27 fn deserialize<D>(deserializer: D) -> core::result::Result<Self, D::Error>
28 where
29 D: serde::Deserializer<'de>,
30 {
31 <()>::deserialize(deserializer)?;
32 Ok(NoID)
33 }
34}
35
36#[derive(Debug, PartialEq, Eq)]
38pub struct NoData;
39
40#[cfg(feature = "serde")]
41impl ::serde::Serialize for NoData {
42 fn serialize<S>(&self, serializer: S) -> core::result::Result<S::Ok, S::Error>
43 where
44 S: serde::Serializer,
45 {
46 serializer.serialize_unit()
47 }
48}
49
50#[cfg(feature = "serde")]
51impl<'de> ::serde::Deserialize<'de> for NoData {
52 fn deserialize<D>(deserializer: D) -> core::result::Result<Self, D::Error>
53 where
54 D: serde::Deserializer<'de>,
55 {
56 <()>::deserialize(deserializer)?;
57 Ok(NoData)
58 }
59}
60
61pub struct DefaultConfig;
68
69impl Config for DefaultConfig {
70 type Id = NoID;
71}
72
73impl Config for () {
74 type Id = NoID;
75}