1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
use serde;

use serde::de::{Deserialize, Deserializer};

use crate::deserializers::run_submit::StatusMessage;

pub(crate) fn int_from_bool<'de, D>(deserializer: D) -> Result<i32, D::Error>
where
    D: Deserializer<'de>,
{
    match bool::deserialize(deserializer)? {
        false => Ok(0),
        true => Ok(1),
    }
}

pub(crate) fn status_from_id<'de, D>(deserializer: D) -> Result<Option<StatusMessage>, D::Error>
where
    D: Deserializer<'de>,
{
    Ok(Option::<u32>::deserialize(deserializer)?.map(StatusMessage::from_status_code))
}