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}