cardano_serialization_lib/
traits.rs1pub trait NoneOrEmpty {
2 fn is_none_or_empty(&self) -> bool;
3}
4
5pub trait EmptyToNone: Sized {
6 fn empty_to_none(self) -> Option<Self>;
7}
8
9impl<T: NoneOrEmpty> NoneOrEmpty for &T {
10 fn is_none_or_empty(&self) -> bool {
11 (*self).is_none_or_empty()
12 }
13}
14
15impl<T: NoneOrEmpty> NoneOrEmpty for Option<T> {
16 fn is_none_or_empty(&self) -> bool {
17 match &self {
18 Some(x) => x.is_none_or_empty(),
19 None => true,
20 }
21 }
22}
23
24impl<T: NoneOrEmpty> EmptyToNone for T {
25 fn empty_to_none(self) -> Option<Self> {
26 if self.is_none_or_empty() {
27 None
28 } else {
29 Some(self)
30 }
31 }
32}