@@ -15,14 +15,13 @@ There's a direct relationship where each string name corresponds to a unique nam
1515
1616## Usage
1717
18- Add to your ` Cargo.toml ` :
18+ ### Example 1: Basic usage
1919
20- ``` toml
21- enum-toggles = " version = " 0.1.2"
20+ - Add deppendency to ` Cargo.toml ` :
21+ ``` bash
22+ cargo add enum-toggles strum strum_macros
2223```
2324
24- ### Example 1: Basic usage
25-
2625- File ` toggles.txt ` conains:
2726
2827``` txt
@@ -33,31 +32,38 @@ enum-toggles = "version = "0.1.2"
3332``` rust
3433use enum_toggles :: EnumToggles ;
3534use strum_macros :: {AsRefStr , EnumIter };
36- #[derive(AsRefStr , EnumIter , PartialEq , Copy , Clone , Debug )]
37- pub enum MyToggle {
35+
36+ #[derive(AsRefStr , EnumIter , PartialEq )]
37+ enum MyToggle {
3838 FeatureA ,
3939 FeatureB ,
4040}
41- let mut toggles = EnumToggles :: <MyToggle >:: new ();
42- toggles . set_enum (MyToggle :: FeatureA , true );
41+
42+ let mut toggles : EnumToggles :: <MyToggle > = EnumToggles :: new ();
43+ toggles . set (MyToggle :: FeatureA as usize , true );
4344toggles . set_by_name (" FeatureB" , true ); // Mapped to MyToggle::FeatureB
44- toggles . load_from_file (" toggles.txt" ); // Load toggles state from file
45+ // toggles.load_from_file("toggles.txt"); // Load toggles state from file
4546println! (" {}" , toggles );
4647```
4748
4849### Example 2: With concucrency context
4950
5051``` rust
52+ use enum_toggles :: EnumToggles ;
53+ use log :: warn;
5154use once_cell :: sync :: Lazy ;
5255use std :: env;
53- use log :: {warn};
54- #[derive(AsRefStr , EnumIter , PartialEq , Copy , Clone , Debug )]
55- pub enum MyToggle {
56+ use std :: ops :: Deref ;
57+ use strum_macros :: {AsRefStr , EnumIter };
58+
59+ #[derive(AsRefStr , EnumIter , PartialEq )]
60+ enum MyToggle {
5661 FeatureA ,
5762 FeatureB ,
5863}
59- pub static TOGGLES : Lazy <Toggles <EnumToggle >> = Lazy :: new (|| {
60- let mut toggle = Toggles :: new ();
64+
65+ pub static TOGGLES : Lazy <EnumToggles <MyToggle >> = Lazy :: new (|| {
66+ let mut toggle : EnumToggles <MyToggle > = EnumToggles :: new ();
6167 let filepath = env :: var (" TOGGLES_FILE" );
6268 match filepath {
6369 Ok (path ) => {
@@ -69,4 +75,6 @@ pub static TOGGLES: Lazy<Toggles<EnumToggle>> = Lazy::new(|| {
6975 }
7076 toggle
7177});
78+
79+ println! (" {}" , TOGGLES . deref ());
7280```
0 commit comments