(iter: &mut ParseIter<I>)
| 685 | } |
| 686 | |
| 687 | fn parse_text_inside_parentheses<T, I>(iter: &mut ParseIter<I>) -> Option<T> |
| 688 | where |
| 689 | T: FormatBuf, |
| 690 | I: Iterator<Item = T::Char>, |
| 691 | { |
| 692 | let mut counter: i32 = 1; |
| 693 | let mut contained_text = T::default(); |
| 694 | loop { |
| 695 | let (_, c) = iter.next()?; |
| 696 | match c.to_char_lossy() { |
| 697 | '(' => { |
| 698 | counter += 1; |
| 699 | } |
| 700 | ')' => { |
| 701 | counter -= 1; |
| 702 | } |
| 703 | _ => (), |
| 704 | } |
| 705 | |
| 706 | if counter > 0 { |
| 707 | contained_text.extend([c]); |
| 708 | } else { |
| 709 | break; |
| 710 | } |
| 711 | } |
| 712 | |
| 713 | Some(contained_text) |
| 714 | } |
| 715 | |
| 716 | #[derive(Debug, PartialEq)] |
| 717 | pub enum CFormatPart<T> { |
no test coverage detected