1 2 3 4 5 6 7 8 9 10 11 12 13 14
//! Helpers for emptiness checks in `#[serde(skip_serializing_if)]`.
/// Trait for types that have an "empty" state.
///
/// If `Default` is implemented for `Self`, `Self::default().is_empty()` should always be `true`.
pub trait CanBeEmpty {
/// Check whether `self` is empty.
fn is_empty(&self) -> bool;
}
/// Check whether a value is empty.
pub fn is_empty<T: CanBeEmpty>(val: &T) -> bool {
val.is_empty()
}