summaryrefslogtreecommitdiff
path: root/src/atom/parsers.rs
diff options
context:
space:
mode:
authorJohn Turner <jturner.usa@gmail.com>2025-10-24 21:32:41 -0400
committerJohn Turner <jturner.usa@gmail.com>2025-10-24 21:32:41 -0400
commitd75266f9677121d2d92065204aaae400fecd3e2b (patch)
tree423330ab9fe7334897950ccaa538aa92f57712ff /src/atom/parsers.rs
parent5967d6945337fa17aa6054ac2e93de287e9cd0ff (diff)
downloadgentoo-utils-d75266f9677121d2d92065204aaae400fecd3e2b.tar.gz
support atoms with empty slot
Diffstat (limited to 'src/atom/parsers.rs')
-rw-r--r--src/atom/parsers.rs9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/atom/parsers.rs b/src/atom/parsers.rs
index 4bc27ce..65cce04 100644
--- a/src/atom/parsers.rs
+++ b/src/atom/parsers.rs
@@ -112,7 +112,7 @@ pub fn slotname<'a>() -> impl Parser<&'a str, Output = SlotName> {
}
pub fn slot<'a>() -> impl Parser<&'a str, Output = Slot> {
- slotname()
+ opt(slotname())
.and(opt(slotname().preceded_by(tag("/"))))
.and(opt(slot_operator()))
.map(|((slot, sub), operator)| Slot {
@@ -273,4 +273,11 @@ mod test {
assert!(atom().check_finished(it).is_err())
}
+
+ #[test]
+ fn test_empty_slot() {
+ let it = InputIter::new("foo/bar-1.0.0:=");
+
+ atom().check_finished(it).unwrap();
+ }
}