heh
dont require nightly
| -rw-r--r-- | src/main.rs | 32 | ||||
| -rw-r--r-- | src/util.rs | 11 |
2 files changed, 21 insertions, 22 deletions
diff --git a/src/main.rs b/src/main.rs index 96a8e2c..5f339cb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,15 +1,15 @@ #![allow(confusable_idents, uncommon_codepoints, mixed_script_confusables)] -#![feature( - unchecked_math, - array_windows, - slice_take, - test, - slice_as_chunks, - array_chunks, - slice_split_once, - byte_slice_trim_ascii -)] -extern crate test; +// #![feature( +// unchecked_math, +// array_windows, +// slice_take, +// test, +// slice_as_chunks, +// array_chunks, +// slice_split_once, +// byte_slice_trim_ascii +// )] +// extern crate test; mod util; use std::{io::Write, ops::ControlFlow}; @@ -90,8 +90,8 @@ fn main() { println!("{}", run(i)); } -#[bench] -fn bench(b: &mut test::Bencher) { - let i = boxd(include_str!("inp.txt").trim()); - b.iter(|| run(i)); -} +// #[bench] +// fn bench(b: &mut test::Bencher) { +// let i = boxd(include_str!("inp.txt").trim()); +// b.iter(|| run(i)); +// } diff --git a/src/util.rs b/src/util.rs index acb609d..0e07bc7 100644 --- a/src/util.rs +++ b/src/util.rs @@ -185,12 +185,11 @@ pub trait Μ where impl Μ for &[u8] { fn μ(self, d: char) -> (Self, Self) { - self.split_once(|&x| x == d as u8).unwrap_or_else(|| { - panic!( - "{} should split at {d} fine", - std::str::from_utf8(self).expect("utf8") - ) - }) + let i = self + .iter() + .position(|&x| x == d as u8) + .unwrap_or_else(|| panic!("{} should split at {d} fine", self.p(),)); + (&self[..i], &self[i + 1..]) } fn μκ<T: FromStr>(self, d: char) -> impl Iterator<Item = (T, T)> |