Skip to content

Commit 151f2c8

Browse files
authored
Merge pull request #7 from Jxtopher/fix-tests
fix: improve syntax and benchmark
2 parents 05414bd + 1b2a21d commit 151f2c8

File tree

3 files changed

+20
-18
lines changed

3 files changed

+20
-18
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ println!("{:?}", toggles);
5151
```rust
5252
use enum_toggles::EnumToggles;
5353
use log::warn;
54-
use once_cell::sync::Lazy;
5554
use std::env;
5655
use std::ops::Deref;
56+
use std::sync::LazyLock;
5757
use strum_macros::{AsRefStr, EnumIter};
5858

5959
#[derive(AsRefStr, EnumIter, PartialEq)]
@@ -62,7 +62,7 @@ enum MyToggle {
6262
FeatureB,
6363
}
6464

65-
pub static TOGGLES: Lazy<EnumToggles<MyToggle>> = Lazy::new(|| {
65+
pub static TOGGLES: LazyLock<EnumToggles<MyToggle>> = LazyLock::new(|| {
6666
let mut toggle:EnumToggles<MyToggle> = EnumToggles::new();
6767
let filepath = env::var("TOGGLES_FILE");
6868
match filepath {

benches/bench.rs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ fn enum_toggles(toggles: &EnumToggles<TestToggles>) {
2020
black_box(toggles.get(TestToggles::Spades as usize));
2121
}
2222

23-
fn map_toggles(hash_map_toggles: &HashMap<&'static str, bool>) {
24-
black_box(hash_map_toggles.get("Hearts"));
25-
black_box(hash_map_toggles.get("Tiles"));
26-
black_box(hash_map_toggles.get("Pikes"));
27-
black_box(hash_map_toggles.get("Spades"));
23+
fn list_toggles(list_toggles_value: &Vec<bool>) {
24+
black_box(list_toggles_value[TestToggles::Hearts as usize]);
25+
black_box(list_toggles_value[TestToggles::Tiles as usize]);
26+
black_box(list_toggles_value[TestToggles::Pikes as usize]);
27+
black_box(list_toggles_value[TestToggles::Spades as usize]);
2828
}
2929

3030
fn compare_methods(c: &mut Criterion) {
@@ -38,16 +38,18 @@ fn compare_methods(c: &mut Criterion) {
3838
hash_map_toggles.insert("Pikes", false);
3939
hash_map_toggles.insert("Spades", false);
4040

41+
let list_toggles_value: Vec<bool> = vec![false; 4];
42+
4143
group.bench_with_input(
4244
BenchmarkId::new("Readonly-toggles", "enum_toggles"),
4345
&toggles,
4446
|b, input| b.iter(|| enum_toggles(black_box(input))),
4547
);
4648

4749
group.bench_with_input(
48-
BenchmarkId::new("Readonly-toggles", "HashMap"),
49-
&hash_map_toggles,
50-
|b, input| b.iter(|| map_toggles(black_box(input))),
50+
BenchmarkId::new("Readonly-toggles", "List"),
51+
&list_toggles_value,
52+
|b, input| b.iter(|| list_toggles(black_box(input))),
5153
);
5254

5355
group.finish();

src/lib.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,9 @@
3232
//! ```rust
3333
//! use enum_toggles::EnumToggles;
3434
//! use log::warn;
35-
//! use once_cell::sync::Lazy;
3635
//! use std::env;
3736
//! use std::ops::Deref;
37+
//! use std::sync::LazyLock;
3838
//! use strum_macros::{AsRefStr, EnumIter};
3939
//!
4040
//! #[derive(AsRefStr, EnumIter, PartialEq)]
@@ -43,7 +43,7 @@
4343
//! FeatureB,
4444
//! }
4545
//!
46-
//! pub static TOGGLES: Lazy<EnumToggles<MyToggle>> = Lazy::new(|| {
46+
//! pub static TOGGLES: LazyLock<EnumToggles<MyToggle>> = LazyLock::new(|| {
4747
//! let mut toggle:EnumToggles<MyToggle> = EnumToggles::new();
4848
//! let filepath = env::var("TOGGLES_FILE");
4949
//! match filepath {
@@ -198,21 +198,21 @@ mod tests {
198198
}
199199

200200
#[test]
201-
fn default() {
201+
fn test_default() {
202202
let toggles: EnumToggles<TestToggles> = EnumToggles::default();
203203
assert_eq!(toggles.toggles_value.len(), TestToggles::iter().count());
204204
}
205205

206206
#[test]
207-
fn set_all() {
207+
fn test_set_all() {
208208
let mut toggles: EnumToggles<TestToggles> = EnumToggles::new();
209209
toggles.set_all(HashMap::from([("Toggle1".to_string(), true)]));
210210
assert_eq!(toggles.get(TestToggles::Toggle1 as usize), true);
211211
assert_eq!(toggles.get(TestToggles::Toggle2 as usize), false);
212212
}
213213

214214
#[test]
215-
fn set_by_name() {
215+
fn test_set_by_name() {
216216
let mut toggles: EnumToggles<TestToggles> = EnumToggles::new();
217217
assert_eq!(toggles.get(TestToggles::Toggle1 as usize), false);
218218
toggles.set_by_name("Toggle1", true);
@@ -222,13 +222,13 @@ mod tests {
222222
}
223223

224224
#[test]
225-
fn display() {
225+
fn test_display() {
226226
let toggles: EnumToggles<TestToggles> = EnumToggles::new();
227227
assert_eq!(format!("{:?}", toggles).is_empty(), false);
228228
}
229229

230230
#[test]
231-
fn load_from_file() {
231+
fn test_load_from_file() {
232232
// Create a temporary file
233233
let mut temp_file =
234234
tempfile::NamedTempFile::new().expect("Unable to create temporary file");
@@ -261,7 +261,7 @@ mod tests {
261261
#[should_panic(
262262
expected = "Out-of-bounds access. The provided toggle_id is 5, but the array size is 2. Please use the default enum value."
263263
)]
264-
fn deviant_toggles() {
264+
fn test_deviant_toggles() {
265265
let mut toggles: EnumToggles<DeviantToggles> = EnumToggles::new();
266266
toggles.set(DeviantToggles::Toggle1 as usize, true);
267267
}

0 commit comments

Comments
 (0)