generated from janezicmatej/aoc-template
feat: add basic parser functions
This commit is contained in:
parent
00000010b7
commit
000000208a
|
@ -1 +1,4 @@
|
||||||
|
#![feature(pattern)]
|
||||||
|
|
||||||
|
pub mod parsers;
|
||||||
pub mod template;
|
pub mod template;
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
use std::str::{pattern::Pattern, FromStr};
|
||||||
|
|
||||||
|
pub fn to_vec<T, P>(s: &str, pat: P) -> Vec<T>
|
||||||
|
where
|
||||||
|
T: FromStr,
|
||||||
|
P: Pattern,
|
||||||
|
{
|
||||||
|
s.split(pat).filter_map(|x| x.parse().ok()).collect()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn to_vec_map<T, U, P>(s: &str, pat: P, func: impl FnMut(T) -> U) -> Vec<U>
|
||||||
|
where
|
||||||
|
T: FromStr,
|
||||||
|
P: Pattern,
|
||||||
|
{
|
||||||
|
s.split(pat)
|
||||||
|
.filter_map(|x| x.parse().ok())
|
||||||
|
.map(func)
|
||||||
|
.collect()
|
||||||
|
}
|
Loading…
Reference in New Issue