diff --git a/src/lib.rs b/src/lib.rs index 572d722..da6cb26 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -95,6 +95,14 @@ pub fn slice_is_empty(s: &[T]) -> bool { s.is_empty() } +/// Checks if a value is equal to its default. +/// This could be inefficient if default() is non-trivial. Should be used for things like +/// eliding serialization of zeroes and other default values with serde. +#[inline(always)] +pub fn is_default(v: &V) -> bool { + V::default().eq(v) +} + #[cold] #[inline(never)] pub extern "C" fn unlikely_branch() {}