[−][src]Enum biscuit::SingleOrMultiple
Represents a choice between a single value or multiple values. This value is serialized by serde untagged.
Examples
extern crate biscuit; #[macro_use] extern crate serde_derive; extern crate serde_json; use biscuit::SingleOrMultiple; #[derive(Debug, Eq, PartialEq, Serialize, Deserialize)] struct SingleOrMultipleStrings { values: SingleOrMultiple<String>, } let single = SingleOrMultipleStrings { values: SingleOrMultiple::Single("foobar".to_string()) }; let expected_json = r#"{"values":"foobar"}"#; let serialized = serde_json::to_string(&single).unwrap(); assert_eq!(expected_json, serialized); let deserialized: SingleOrMultipleStrings = serde_json::from_str(&serialized).unwrap(); assert_eq!(deserialized, single); let multiple = SingleOrMultipleStrings { values: SingleOrMultiple::Multiple(vec!["foo".to_string(), "bar".to_string(), "baz".to_string()]), }; let expected_json = r#"{"values":["foo","bar","baz"]}"#; let serialized = serde_json::to_string(&multiple).unwrap(); assert_eq!(expected_json, serialized); let deserialized: SingleOrMultipleStrings = serde_json::from_str(&serialized).unwrap(); assert_eq!(deserialized, multiple);
Variants
Single(T)
One single value
Multiple(Vec<T>)
Multiple values
Methods
impl<T> SingleOrMultiple<T> where
T: Clone + Debug + Eq + PartialEq + Serialize + DeserializeOwned + Send + Sync,
[src]
T: Clone + Debug + Eq + PartialEq + Serialize + DeserializeOwned + Send + Sync,
pub fn contains<Q: ?Sized>(&self, value: &Q) -> bool where
T: Borrow<Q>,
Q: PartialEq,
[src]
T: Borrow<Q>,
Q: PartialEq,
Checks whether this enum, regardless of single or multiple value contains value
.
pub fn iter<'a>(&'a self) -> Box<dyn Iterator<Item = &'a T> + 'a>
[src]
Yields an iterator for the single value or the list
Trait Implementations
impl<T: PartialEq> PartialEq<SingleOrMultiple<T>> for SingleOrMultiple<T>
[src]
fn eq(&self, other: &SingleOrMultiple<T>) -> bool
[src]
fn ne(&self, other: &SingleOrMultiple<T>) -> bool
[src]
impl<T: Clone> Clone for SingleOrMultiple<T>
[src]
fn clone(&self) -> SingleOrMultiple<T>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
Performs copy-assignment from source
. Read more
impl<T: Eq> Eq for SingleOrMultiple<T>
[src]
impl<T: Debug> Debug for SingleOrMultiple<T>
[src]
impl<T> Serialize for SingleOrMultiple<T> where
T: Serialize,
[src]
T: Serialize,
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl<'de, T> Deserialize<'de> for SingleOrMultiple<T> where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
Auto Trait Implementations
impl<T> Send for SingleOrMultiple<T> where
T: Send,
T: Send,
impl<T> Sync for SingleOrMultiple<T> where
T: Sync,
T: Sync,
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> DeserializeOwned for T where
T: Deserialize<'de>,
[src]
T: Deserialize<'de>,
impl<Q, K> Equivalent for Q where
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,
[src]
K: Borrow<Q> + ?Sized,
Q: Eq + ?Sized,