Struct seredies::components::KeyValuePairs
source · pub struct KeyValuePairs<T>(pub T);
Expand description
Adapter for key-value pairs in Redis.
Commonly, Redis will express a set of key-value pairs as a flattened array
of the keys and values. For instance, HGETALL
returns something
resembling ["key1", "value1", "key2", "value2"]
. KeyValuePairs
allows
for rust maps and structs to be adapted in this way; a map or struct type
wrapped in KeyValuePairs
will serialize to, and deserialize from, a
flattened array of key-value pairs.
Example
use serde::{Serialize, Deserialize};
use seredies::{de::Deserializer, ser::Serializer, components::KeyValuePairs};
let mut buffer: Vec<u8> = Vec::new();
let data = ["key1", "value1", "key2", "value2"];
data.serialize(Serializer::new(&mut buffer)).unwrap();
#[derive(Deserialize)]
struct Data {
key1: String,
key2: String,
}
let mut buffer = buffer.as_slice();
let deserializer = Deserializer::new(&mut buffer);
let KeyValuePairs(Data{key1, key2}) = Deserialize::deserialize(deserializer)
.expect("failed to deserialize");
assert_eq!(key1, "value1");
assert_eq!(key2, "value2");
Tuple Fields§
§0: T
Trait Implementations§
source§impl<T: Clone> Clone for KeyValuePairs<T>
impl<T: Clone> Clone for KeyValuePairs<T>
source§fn clone(&self) -> KeyValuePairs<T>
fn clone(&self) -> KeyValuePairs<T>
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl<T: Debug> Debug for KeyValuePairs<T>
impl<T: Debug> Debug for KeyValuePairs<T>
source§impl<T: Default> Default for KeyValuePairs<T>
impl<T: Default> Default for KeyValuePairs<T>
source§fn default() -> KeyValuePairs<T>
fn default() -> KeyValuePairs<T>
Returns the “default value” for a type. Read more
source§impl<'de, T> Deserialize<'de> for KeyValuePairs<T>where
T: Deserialize<'de>,
impl<'de, T> Deserialize<'de> for KeyValuePairs<T>where T: Deserialize<'de>,
source§fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where
D: Deserializer<'de>,
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>where D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
source§impl<T> From<T> for KeyValuePairs<T>
impl<T> From<T> for KeyValuePairs<T>
source§impl<T: Serialize> Serialize for KeyValuePairs<T>
impl<T: Serialize> Serialize for KeyValuePairs<T>
impl<T: Copy> Copy for KeyValuePairs<T>
Auto Trait Implementations§
impl<T> RefUnwindSafe for KeyValuePairs<T>where T: RefUnwindSafe,
impl<T> Send for KeyValuePairs<T>where T: Send,
impl<T> Sync for KeyValuePairs<T>where T: Sync,
impl<T> Unpin for KeyValuePairs<T>where T: Unpin,
impl<T> UnwindSafe for KeyValuePairs<T>where T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more