Add `MaybeUndefined::update_to` method. #881

This commit is contained in:
Sunli 2022-03-31 10:51:31 +08:00
parent 4f50a50e7d
commit aa15be435a
2 changed files with 27 additions and 1 deletions

@ -1 +1 @@
Subproject commit 61384c8fa50e1395e50015b2be77b4bc6f5de4d2
Subproject commit 6a63808523f7e4995f9111a3497f06921cd3b11b

View File

@ -172,6 +172,32 @@ impl<T> MaybeUndefined<T> {
MaybeUndefined::Undefined => MaybeUndefined::Undefined,
}
}
/// Update `value` if the `MaybeUndefined<T>` is not undefined.
///
/// # Example
///
/// ```rust
/// use async_graphql::MaybeUndefined;
///
/// let mut value = None;
///
/// MaybeUndefined::Value(10i32).update_to(&mut value);
/// assert_eq!(value, Some(10));
///
/// MaybeUndefined::Undefined.update_to(&mut value);
/// assert_eq!(value, Some(10));
///
/// MaybeUndefined::Null.update_to(&mut value);
/// assert_eq!(value, None);
/// ```
pub fn update_to(self, value: &mut Option<T>) {
match self {
MaybeUndefined::Value(new) => *value = Some(new),
MaybeUndefined::Null => *value = None,
MaybeUndefined::Undefined => {}
};
}
}
impl<T: InputType> InputType for MaybeUndefined<T> {