Merge pull request #600 from dbstratta/master
Implement `From<MaybeUndefined<T>> for Option<Option<T>>`
This commit is contained in:
commit
e79f00dcfb
@ -156,6 +156,16 @@ where
|
||||
}
|
||||
}
|
||||
|
||||
impl<T> From<MaybeUndefined<T>> for Option<Option<T>> {
|
||||
fn from(maybe_undefined: MaybeUndefined<T>) -> Self {
|
||||
match maybe_undefined {
|
||||
MaybeUndefined::Undefined => None,
|
||||
MaybeUndefined::Null => Some(None),
|
||||
MaybeUndefined::Value(value) => Some(Some(value)),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use crate::*;
|
||||
@ -235,4 +245,19 @@ mod tests {
|
||||
}
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_maybe_undefined_to_nested_option() {
|
||||
assert_eq!(Option::<Option<i32>>::from(MaybeUndefined::Undefined), None);
|
||||
|
||||
assert_eq!(
|
||||
Option::<Option<i32>>::from(MaybeUndefined::Null),
|
||||
Some(None)
|
||||
);
|
||||
|
||||
assert_eq!(
|
||||
Option::<Option<i32>>::from(MaybeUndefined::Value(42)),
|
||||
Some(Some(42))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user