crax_utils 0.2.0

Some common utils
Documentation
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);
}