phabricator_api/maniphest/
mod.rs

1use serde::de::Deserializer;
2use serde::Deserialize;
3
4pub mod info;
5pub mod search;
6
7fn str_or_u32<'de, D>(deserializer: D) -> Result<u32, D::Error>
8where
9    D: Deserializer<'de>,
10{
11    #[derive(Deserialize)]
12    #[serde(untagged)]
13    enum IorS<'a> {
14        I(u32),
15        S(&'a str),
16    }
17    let iors = IorS::deserialize(deserializer)?;
18    let v = match iors {
19        IorS::I(v) => v,
20        IorS::S(s) => s.parse().map_err(serde::de::Error::custom)?,
21    };
22
23    Ok(v)
24}