st_map/lib.rs
1//!
2//! # Usage
3//!
4//!```rust
5//!
6//! use st_map::StaticMap;
7//!
8//! #[derive(Debug, PartialEq, Default, StaticMap)]
9//! struct BrowserData<T: Default> {
10//! chrome: T,
11//! safari: T,
12//! android: T,
13//! }
14//!
15//! {
16//! // .iter(), .iter_mut(), .into_iter()
17//! let mut data = BrowserData {
18//! chrome: true,
19//! safari: false,
20//! android: true,
21//! };
22//! assert_eq!(
23//! data.iter().collect::<Vec<_>>(),
24//! vec![("chrome", &true), ("safari", &false), ("android", &true),]
25//! );
26//!
27//! assert_eq!(
28//! data.iter_mut().collect::<Vec<_>>(),
29//! vec![
30//! ("chrome", &mut true),
31//! ("safari", &mut false),
32//! ("android", &mut true),
33//! ]
34//! );
35//!
36//! assert_eq!(
37//! data.into_iter().collect::<Vec<_>>(),
38//! vec![("chrome", true), ("safari", false), ("android", true),]
39//! );
40//! }
41//!
42//! {
43//! // .map(), .map_values()
44//!
45//! let data = BrowserData {
46//! chrome: 20000,
47//! safari: 10000,
48//! ..Default::default()
49//! };
50//!
51//! assert_eq!(
52//! data.map_value(|v| v > 15000),
53//! BrowserData {
54//! chrome: true,
55//! safari: false,
56//! android: false,
57//! }
58//! );
59//! }
60//! ```
61pub use arrayvec;
62pub use static_map_macro::StaticMap;