1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
use std::collections::BTreeMap;

use serde::{Deserialize, Serialize};

use crate::GqlValue;

#[derive(Serialize, Clone, Default, Debug)]
pub struct Variables(pub BTreeMap<String, GqlValue>);

impl<'de> Deserialize<'de> for Variables {
    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
    where
        D: serde::Deserializer<'de>,
    {
        Ok(Self(
            <Option<BTreeMap<String, GqlValue>>>::deserialize(deserializer)?.unwrap_or_default(),
        ))
    }
}