diff options
author | Ben Bridle <bridle.benjamin@gmail.com> | 2022-09-15 11:50:53 +1200 |
---|---|---|
committer | Ben Bridle <bridle.benjamin@gmail.com> | 2022-09-15 11:59:47 +1200 |
commit | 3999fca9e671e262cdd0ec104e9f6f6cfb623dd4 (patch) | |
tree | de0b766dbf209da5ecf9350a678f98ff9fa6ebc5 | |
parent | 6eee1102918857b11ecc193e684e2438520ef90f (diff) | |
download | recipe-3999fca9e671e262cdd0ec104e9f6f6cfb623dd4.zip |
Fix parsing of ingredients with addendum but no unit
Where an ingredient has no unit (for example, 2 eggs), the parser was
interpreting `{eggs, 2, large}` as "2, large of eggs", instead of as
"2 eggs (large)".
-rw-r--r-- | src/lib.rs | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -102,6 +102,11 @@ fn capture(chars: &[char]) -> Option<(Ingredient, usize)> { unit = Some(String::new()); break; } + Some(&',') => { + i += 1; + addendum = Some(String::new()); + break; + } Some(&'}') => { i += 1; break; @@ -115,6 +120,7 @@ fn capture(chars: &[char]) -> Option<(Ingredient, usize)> { } // Unit + if let Some(ref mut unit) = unit { loop { match chars.get(i) { |