@@ -27,31 +27,38 @@ There's a direct relationship where each string name corresponds to a unique nam
2727``` rust
2828use enum_toggles :: EnumToggles ;
2929use strum_macros :: {AsRefStr , EnumIter };
30- #[derive(AsRefStr , EnumIter , PartialEq , Copy , Clone , Debug )]
31- pub enum MyToggle {
30+
31+ #[derive(AsRefStr , EnumIter , PartialEq )]
32+ enum MyToggle {
3233 FeatureA ,
3334 FeatureB ,
3435}
35- let mut toggles = EnumToggles :: <MyToggle >:: new ();
36- toggles . set_enum (MyToggle :: FeatureA , true );
36+
37+ let mut toggles : EnumToggles :: <MyToggle > = EnumToggles :: new ();
38+ toggles . set (MyToggle :: FeatureA as usize , true );
3739toggles . set_by_name (" FeatureB" , true ); // Mapped to MyToggle::FeatureB
38- toggles . load_from_file (" toggles.txt" ); // Load toggles state from file
40+ // toggles.load_from_file("toggles.txt"); // Load toggles state from file
3941println! (" {}" , toggles );
4042```
4143
4244### Example 2: With concucrency context
4345
4446``` rust
47+ use enum_toggles :: EnumToggles ;
48+ use log :: warn;
4549use once_cell :: sync :: Lazy ;
4650use std :: env;
47- use log :: {warn};
48- #[derive(AsRefStr , EnumIter , PartialEq , Copy , Clone , Debug )]
49- pub enum MyToggle {
51+ use std :: ops :: Deref ;
52+ use strum_macros :: {AsRefStr , EnumIter };
53+
54+ #[derive(AsRefStr , EnumIter , PartialEq )]
55+ enum MyToggle {
5056 FeatureA ,
5157 FeatureB ,
5258}
53- pub static TOGGLES : Lazy <Toggles <EnumToggle >> = Lazy :: new (|| {
54- let mut toggle = Toggles :: new ();
59+
60+ pub static TOGGLES : Lazy <EnumToggles <MyToggle >> = Lazy :: new (|| {
61+ let mut toggle : EnumToggles <MyToggle > = EnumToggles :: new ();
5562 let filepath = env :: var (" TOGGLES_FILE" );
5663 match filepath {
5764 Ok (path ) => {
@@ -63,4 +70,6 @@ pub static TOGGLES: Lazy<Toggles<EnumToggle>> = Lazy::new(|| {
6370 }
6471 toggle
6572});
73+
74+ println! (" {}" , TOGGLES . deref ());
6675```
0 commit comments