fastnum/decimal/dec/extras/
serde.rs1pub mod utils;
2
3mod visitors;
4
5use serde::{self, de, ser};
6
7use crate::decimal::{extras::serde::DeserializeMode, Decimal};
8
9impl<const N: usize> ser::Serialize for Decimal<N> {
10 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
11 where
12 S: ser::Serializer,
13 {
14 serializer.collect_str(&self)
15 }
16}
17
18impl<'de, const N: usize> de::Deserialize<'de> for Decimal<N> {
19 fn deserialize<D>(d: D) -> Result<Self, D::Error>
20 where
21 D: de::Deserializer<'de>,
22 {
23 const MODE: DeserializeMode = DeserializeMode::default();
24
25 match MODE {
26 DeserializeMode::Strict => d.deserialize_str(visitors::strict::Visitor::<N>::default()),
27 DeserializeMode::Stringify => {
28 d.deserialize_any(visitors::stringify::Visitor::<N>::default())
29 }
30 DeserializeMode::Any => d.deserialize_any(visitors::any::Visitor::<N>::default()),
31 }
32 }
33}