From bfe4e9fa27e421e2ff1709e50a247bc0ebf74441 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Fri, 28 Aug 2020 22:50:30 +0200 Subject: [PATCH] Add ruma_serde::is_empty This will be used for serde attributes that are copied to incoming types and thus actually have to function for multiple types. --- ruma-serde/src/can_be_empty.rs | 9 +++++++++ ruma-serde/src/lib.rs | 2 ++ 2 files changed, 11 insertions(+) create mode 100644 ruma-serde/src/can_be_empty.rs diff --git a/ruma-serde/src/can_be_empty.rs b/ruma-serde/src/can_be_empty.rs new file mode 100644 index 00000000..2451607d --- /dev/null +++ b/ruma-serde/src/can_be_empty.rs @@ -0,0 +1,9 @@ +pub trait CanBeEmpty { + /// Check whether `self` is empty. + fn is_empty(&self) -> bool; +} + +/// Check whether a value is empty. +pub fn is_empty(val: &T) -> bool { + val.is_empty() +} diff --git a/ruma-serde/src/lib.rs b/ruma-serde/src/lib.rs index d8b88ec8..18132537 100644 --- a/ruma-serde/src/lib.rs +++ b/ruma-serde/src/lib.rs @@ -2,6 +2,7 @@ use serde::de::{Deserialize, IntoDeserializer}; +pub mod can_be_empty; pub mod duration; pub mod empty; pub mod json_string; @@ -9,6 +10,7 @@ pub mod test; pub mod time; pub mod urlencoded; +pub use can_be_empty::{is_empty, CanBeEmpty}; pub use empty::vec_as_map_of_empty; /// Check whether a value is equal to its default value.