1pub mod traits;
2
3#[cfg(feature = "derive")]
4extern crate smart_hash_derive;
5#[cfg(feature = "derive")]
6pub use smart_hash_derive::SmartHash as SmartHash;
7
8#[macro_export]
9macro_rules! get_matching {
10
11 ($obj:ident,$($key:ident,$val:expr),+) => ({
14 let mut empty_opt = $obj.get_none_default();
15
16 $(empty_opt.$key = Some($val);)*
17
18 $obj.get_matching(empty_opt)
19 });
20
21 ($obj:ident,$($key:ident == $val:expr),+) => ({
24 get_matching!($obj,$($key,$val),+)
25 });
26
27 ($obj:ident where $($key:ident is $val:expr),+) => ({
30 get_matching!($obj,$($key,$val),+)
31 });
32}