#[cfg(doc)]
use crate::zset_set;
#[macro_export]
macro_rules! indexed_zset {
($key_type:ty => $val_type:ty: $($key:expr_2021 => { $($value:expr_2021 => $weight:expr_2021),* }),* $(,)?) => {{
let batch = ::std::vec![ $( $( $crate::utils::Tup2($crate::utils::Tup2($key, $value), $weight) ),* ),* ];
$crate::typed_batch::OrdIndexedZSet::<$key_type, $val_type>::from_tuples((), batch)
}};
($($key:expr_2021 => { $($value:expr_2021 => $weight:expr_2021),* }),* $(,)?) => {{
let batch = ::std::vec![ $( $( $crate::utils::Tup2($crate::utils::Tup2($key, $value), $weight) ),* ),* ];
$crate::typed_batch::OrdIndexedZSet::from_tuples((), batch)
}};
}
#[macro_export]
macro_rules! zset {
( $( $key:expr_2021 => $weight:expr_2021 ),* $(,)?) => {{
let batch = ::std::vec![ $( $crate::utils::Tup2($crate::utils::Tup2($key, ()), $weight) ),* ];
$crate::typed_batch::OrdZSet::from_tuples((), batch)
}};
}
#[macro_export]
macro_rules! zset_set {
( $( $key:expr_2021 ),* $(,)?) => {{
let batch = ::std::vec![ $( $crate::utils::Tup2($crate::utils::Tup2($key, ()), 1) ),* ];
$crate::typed_batch::OrdZSet::from_tuples((), batch)
}};
}
#[cfg(test)]
mod test {
use crate::typed_batch::IndexedZSetReader;
#[test]
fn zset_test() {
let zset = zset! {1 => -1, 2 => 1};
assert_eq!(
zset.iter().collect::<Vec<_>>(),
vec![(1, (), -1), (2, (), 1)]
);
}
#[test]
fn indexed_zset_test() {
let zset = indexed_zset! { u64 => i64: 1 => {3 => -1, 2 => 1}, 2 => {2 => 1}};
assert_eq!(
zset.iter().collect::<Vec<_>>(),
vec![(1, 2, 1), (1, 3, -1), (2, 2, 1)]
);
}
#[test]
fn zset_set_test() {
let zset = zset_set! {1i32, 2, -3};
assert_eq!(
zset.iter().collect::<Vec<_>>(),
vec![(-3i32, (), 1), (1, (), 1), (2, (), 1)]
);
}
}