generated from janezicmatej/aoc-template
feat: prepare basic parsers
This commit is contained in:
parent
000000003b
commit
00000010fc
|
@ -2,6 +2,8 @@
|
|||
# Advent-of-Code 2023
|
||||
*This is a dumbed down version of [fspoettel/advent-of-code-rust](https://github.com/fspoettel/advent-of-code-rust) with some extra features*
|
||||
|
||||
This project targets nightly build of rust, since some preview features are enabled
|
||||
|
||||
## Project overview
|
||||
|
||||
### Project structure
|
||||
|
|
|
@ -1 +1,4 @@
|
|||
#![feature(pattern)]
|
||||
|
||||
pub mod parsers;
|
||||
pub mod template;
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
use std::str::{pattern::Pattern, FromStr};
|
||||
|
||||
pub fn to_vec<'a, T, P>(s: &'a str, pat: P) -> Vec<T>
|
||||
where
|
||||
T: FromStr,
|
||||
P: Pattern<'a>,
|
||||
{
|
||||
s.split(pat).filter_map(|x| x.parse().ok()).collect()
|
||||
}
|
||||
|
||||
pub fn to_vec_map<'a, T, U, P>(s: &'a str, pat: P, func: impl FnMut(T) -> U) -> Vec<U>
|
||||
where
|
||||
T: FromStr,
|
||||
P: Pattern<'a>,
|
||||
{
|
||||
s.split(pat)
|
||||
.filter_map(|x| x.parse().ok())
|
||||
.map(func)
|
||||
.collect()
|
||||
}
|
Loading…
Reference in New Issue