dogma/traits/
maybe_labeled.rs1use crate::prelude::Cow;
4
5pub trait MaybeLabeled {
7 fn label(&self) -> Option<Cow<str>> {
9 None }
11
12 fn is_labeled(&self) -> bool {
14 self.label().is_some()
15 }
16}
17
18#[cfg(feature = "serde")]
19impl serde::Serialize for dyn MaybeLabeled {
20 fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
21 where
22 S: serde::Serializer,
23 {
24 match self.label() {
25 Some(ref value) => serializer.serialize_some(value.as_ref()),
26 None => serializer.serialize_none(),
27 }
28 }
29}