diff options
| author | John Turner <jturner.usa@gmail.com> | 2025-10-23 00:52:35 -0400 |
|---|---|---|
| committer | John Turner <jturner.usa@gmail.com> | 2025-10-23 21:19:47 -0400 |
| commit | 2e7d8cfbb92361b6c35f8f9a567c0517139cfb51 (patch) | |
| tree | e6ce91d8b138f597db408e18318bd768d3e92cc3 /src/useflag | |
| parent | 6e4b45027e993f805346809f22d7a209bb477d2f (diff) | |
| download | gentoo-utils-2e7d8cfbb92361b6c35f8f9a567c0517139cfb51.tar.gz | |
impl atom parsing
Diffstat (limited to 'src/useflag')
| -rw-r--r-- | src/useflag/mod.rs | 10 | ||||
| -rw-r--r-- | src/useflag/parsers.rs | 10 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/useflag/mod.rs b/src/useflag/mod.rs new file mode 100644 index 0000000..3bf929a --- /dev/null +++ b/src/useflag/mod.rs @@ -0,0 +1,10 @@ +pub mod parsers; + +#[derive(Clone, Debug, PartialEq, Eq)] +pub struct UseFlag(String); + +impl UseFlag { + pub fn get(&self) -> &str { + self.0.as_str() + } +} diff --git a/src/useflag/parsers.rs b/src/useflag/parsers.rs new file mode 100644 index 0000000..e6e228b --- /dev/null +++ b/src/useflag/parsers.rs @@ -0,0 +1,10 @@ +use mon::{Parser, alpha1, alphanumeric, one_of, take_while}; + +use crate::useflag::UseFlag; + +pub fn useflag<'a>() -> impl Parser<&'a str, Output = UseFlag> { + alpha1() + .and(alphanumeric().or(take_while(one_of("+_@-".chars())))) + .recognize() + .map(|output: &str| UseFlag(output.to_string())) +} |
