rusmpp/values/
replace_if_present_flag.rs

1crate::create! {
2    #[repr(u8)]
3    #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, Default)]
4    #[cfg_attr(feature = "arbitrary", derive(::arbitrary::Arbitrary))]
5    #[cfg_attr(feature = "serde", derive(::serde::Serialize))]
6    #[cfg_attr(feature = "serde-deserialize-unchecked", derive(::serde::Deserialize))]
7    pub enum ReplaceIfPresentFlag {
8        #[default]
9        DoNotReplace = 0,
10        Replace = 1,
11        Other(u8),
12    }
13}
14
15impl From<u8> for ReplaceIfPresentFlag {
16    fn from(value: u8) -> Self {
17        match value {
18            0 => ReplaceIfPresentFlag::DoNotReplace,
19            1 => ReplaceIfPresentFlag::Replace,
20            value => ReplaceIfPresentFlag::Other(value),
21        }
22    }
23}
24
25impl From<ReplaceIfPresentFlag> for u8 {
26    fn from(value: ReplaceIfPresentFlag) -> Self {
27        match value {
28            ReplaceIfPresentFlag::DoNotReplace => 0,
29            ReplaceIfPresentFlag::Replace => 1,
30            ReplaceIfPresentFlag::Other(value) => value,
31        }
32    }
33}
34
35#[cfg(test)]
36mod tests {
37    use super::*;
38
39    #[test]
40    fn encode_decode() {
41        crate::tests::encode_decode_test_instances::<ReplaceIfPresentFlag>();
42    }
43}