diff options
| author | John Turner <jturner.usa@gmail.com> | 2025-12-13 05:36:26 +0000 |
|---|---|---|
| committer | John Turner <jturner.usa@gmail.com> | 2025-12-14 01:37:49 +0000 |
| commit | a4e73069f42f1ace341007de6a54ac7148a4181a (patch) | |
| tree | 0760a915be8f2639dffc2cdd10408ad7e3460a5b /src/repo/parsers.rs | |
| parent | 870800c98504f48dd74c97bd2d03209fe3eea99f (diff) | |
| download | gentoo-utils-feature/profiles.tar.gz | |
read arch.listfeature/profiles
Diffstat (limited to 'src/repo/parsers.rs')
| -rw-r--r-- | src/repo/parsers.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/repo/parsers.rs b/src/repo/parsers.rs new file mode 100644 index 0000000..ccef666 --- /dev/null +++ b/src/repo/parsers.rs @@ -0,0 +1,20 @@ +use mon::{Parser, ParserIter, ascii_alphanumeric, one_of}; + +use crate::{Parseable, repo::Arch}; + +impl<'a> Parseable<'a, &'a str> for Arch { + type Parser = impl Parser<&'a str, Output = Self>; + + fn parser() -> Self::Parser { + let start = ascii_alphanumeric(); + let rest = ascii_alphanumeric() + .or(one_of("-".chars())) + .repeated() + .many(); + + start + .and(rest) + .recognize() + .map(|output: &str| Arch(output.to_string())) + } +} |
