summaryrefslogtreecommitdiff
path: root/src/repo/profile/package/parsers.rs
diff options
context:
space:
mode:
authorJohn Turner <jturner.usa@gmail.com>2025-11-29 20:43:28 +0000
committerJohn Turner <jturner.usa@gmail.com>2025-11-29 20:50:59 +0000
commitd1127df296aa7871555293e324d125e6d8a843e1 (patch)
treebaddfab365df586207fa9c1dadf270ee94c3f46f /src/repo/profile/package/parsers.rs
parent94f3397d197e47eb58a7391acd9c63c5565fa26e (diff)
downloadgentoo-utils-profiles.tar.gz
impl profile evaluationprofiles
Diffstat (limited to 'src/repo/profile/package/parsers.rs')
-rw-r--r--src/repo/profile/package/parsers.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/repo/profile/package/parsers.rs b/src/repo/profile/package/parsers.rs
new file mode 100644
index 0000000..74d9acc
--- /dev/null
+++ b/src/repo/profile/package/parsers.rs
@@ -0,0 +1,13 @@
+use mon::{Parser, tag};
+
+use crate::{Parseable, atom::Atom, repo::profile::package::Package};
+
+impl<'a> Parseable<'a, &'a str> for Package {
+ type Parser = impl Parser<&'a str, Output = Self>;
+
+ fn parser() -> Self::Parser {
+ Atom::parser()
+ .map(Package::Add)
+ .or(Atom::parser().preceded_by(tag("-")).map(Package::Remove))
+ }
+}