Merge pull request #600 from dbstratta/master

Implement `From<MaybeUndefined<T>> for Option<Option<T>>`
This commit is contained in:
Sunli 2021-08-14 09:09:06 +08:00 committed by GitHub
commit e79f00dcfb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -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))
);
}
}