Skip to main content

dfx_base/fields/converters/
bool.rs

1use crate::field_map::FieldValue;
2use crate::fields::converters::TryFrom;
3use crate::fields::ConversionError;
4
5use super::IntoBytes;
6
7impl<'a> TryFrom<&'a FieldValue> for bool {
8    type Error = ConversionError;
9
10    fn try_from(value: &'a FieldValue) -> Result<Self, Self::Error> {
11        let ref_str: &str = TryFrom::try_from(value)?;
12
13        match ref_str {
14            "Y" => Ok(true),
15            "N" => Ok(false),
16            _ => todo!(),
17        }
18    }
19}
20
21impl IntoBytes<FieldValue> for bool {
22    fn as_bytes(&self) -> FieldValue {
23        if *self {
24            vec!['Y' as u8].into()
25        } else {
26            vec!['N' as u8].into()
27        }
28    }
29}