pub trait VecOption {
fn is_empty_vec(&self) -> bool;
}
impl<T: Sized> VecOption for Option<Vec<T>> {
#[inline]
fn is_empty_vec(&self) -> bool {
self.as_ref().map_or(true, |x| x.is_empty())
}
}
impl<T: Sized> VecOption for Option<&Vec<T>> {
#[inline]
fn is_empty_vec(&self) -> bool {
self.as_ref().map_or(true, |x| x.is_empty())
}
}
#[test]
fn is_empty() {
let arr = vec![1];
assert_eq!(Some(arr).is_empty_vec(), false);
let mut arr1 = vec![0];
arr1.clear();
assert_eq!(Some(arr1).is_empty_vec(), true);
let arr_none: Option<Vec<i32>> = None;
assert_eq!(arr_none.is_empty_vec(), true);
}