prusto_rs/types/
boolean.rs1use serde::de::{Deserialize, DeserializeSeed, Deserializer};
2
3use super::{Context, Presto, PrestoMapKey, PrestoTy};
4
5impl Presto for bool {
6 type ValueType<'a> = &'a bool;
7 type Seed<'a, 'de> = BoolSeed;
8
9 fn value(&self) -> Self::ValueType<'_> {
10 self
11 }
12
13 fn ty() -> PrestoTy {
14 PrestoTy::Boolean
15 }
16
17 fn seed<'a, 'de>(_ctx: &'a Context) -> Self::Seed<'a, 'de> {
18 BoolSeed
19 }
20
21 fn empty() -> Self {
22 Default::default()
23 }
24}
25
26impl PrestoMapKey for bool {}
27
28pub struct BoolSeed;
29
30impl<'de> DeserializeSeed<'de> for BoolSeed {
31 type Value = bool;
32 fn deserialize<D>(self, deserializer: D) -> Result<Self::Value, D::Error>
33 where
34 D: Deserializer<'de>,
35 {
36 Self::Value::deserialize(deserializer)
37 }
38}