From 5226edbb0ae324638cb39b9c20168ec7a3d21ed9 Mon Sep 17 00:00:00 2001 From: Zynh0722 Date: Sun, 25 Feb 2024 15:22:38 -0800 Subject: [PATCH] itertools instead of bespoke --- Cargo.lock | 16 ++++++++++++++++ Cargo.toml | 1 + src/main.rs | 3 +-- src/map_ok.rs | 33 --------------------------------- 4 files changed, 18 insertions(+), 35 deletions(-) delete mode 100644 src/map_ok.rs diff --git a/Cargo.lock b/Cargo.lock index b4db1e7..3b21a0f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -8,6 +8,21 @@ version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" +[[package]] +name = "either" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11157ac094ffbdde99aa67b23417ebdd801842852b500e395a45a9c0aac03e4a" + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.10" @@ -19,6 +34,7 @@ name = "lodestone-level-calc-rs" version = "0.1.0" dependencies = [ "anyhow", + "itertools", "serde", "serde_json", ] diff --git a/Cargo.toml b/Cargo.toml index 67e2bde..f7bb310 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,5 +7,6 @@ edition = "2021" [dependencies] anyhow = "1.0.79" +itertools = "0.12.1" serde = { version = "1.0.196", features = ["alloc", "serde_derive"] } serde_json = { version = "1.0.113", features = ["alloc"] } diff --git a/src/main.rs b/src/main.rs index fc60099..311c923 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,8 +1,7 @@ mod compile_data; -mod map_ok; mod raw_data; -use map_ok::MapOkTrait; +use itertools::Itertools; use crate::compile_data::{DpsRole, JobStats, Role}; use crate::raw_data::RawJobStats; diff --git a/src/map_ok.rs b/src/map_ok.rs deleted file mode 100644 index 67cd0fd..0000000 --- a/src/map_ok.rs +++ /dev/null @@ -1,33 +0,0 @@ -#[derive(Clone)] -pub struct MapOkIterator { - iter: I, - f: F, -} - -impl Iterator for MapOkIterator -where - F: FnMut(A) -> B, - I: Iterator>, -{ - type Item = Result; - - #[inline] - fn next(&mut self) -> Option { - self.iter.next().map(|x| x.map(&mut self.f)) - } -} - -pub trait MapOkTrait { - fn map_ok(self, func: F) -> MapOkIterator - where - Self: Sized + Iterator>, - F: FnMut(A) -> B, - { - MapOkIterator { - iter: self, - f: func, - } - } -} - -impl MapOkTrait for I where I: Sized + Iterator> {}