diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-02-18 08:41:16 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2023-02-18 08:41:16 +0000 |
commit | 17ffee4c9e9f6277d67f0c18315194ab8f655d3b (patch) | |
tree | d618c4f057d10b639bbda658608ddc47f7613b9c /src/iterators/flat_pairs.rs | |
parent | c9dc7a33677efefec82548679d4e744b256b997d (diff) | |
parent | 69d145f5252d6dfff0f93f2eb778b9f431107387 (diff) | |
download | pest-17ffee4c9e9f6277d67f0c18315194ab8f655d3b.tar.gz |
Snap for 9626534 from 69d145f5252d6dfff0f93f2eb778b9f431107387 to udc-d1-releaseandroid-14.0.0_r9android-14.0.0_r8android-14.0.0_r7android-14.0.0_r6android-14.0.0_r5android-14.0.0_r4android-14.0.0_r3android-14.0.0_r12android-14.0.0_r11android-14.0.0_r10android14-d1-s7-releaseandroid14-d1-s6-releaseandroid14-d1-s5-releaseandroid14-d1-s4-releaseandroid14-d1-s3-releaseandroid14-d1-s2-releaseandroid14-d1-s1-releaseandroid14-d1-release
Change-Id: I4a2253304e82188c08c5c607a7da1e47aba06f0e
Diffstat (limited to 'src/iterators/flat_pairs.rs')
-rw-r--r-- | src/iterators/flat_pairs.rs | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/iterators/flat_pairs.rs b/src/iterators/flat_pairs.rs index 411d88b..52a2074 100644 --- a/src/iterators/flat_pairs.rs +++ b/src/iterators/flat_pairs.rs @@ -11,6 +11,7 @@ use alloc::rc::Rc; use alloc::vec::Vec; use core::fmt; +use super::line_index::LineIndex; use super::pair::{self, Pair}; use super::queueable_token::QueueableToken; use super::tokens::{self, Tokens}; @@ -28,6 +29,7 @@ pub struct FlatPairs<'i, R> { input: &'i str, start: usize, end: usize, + line_index: Rc<LineIndex>, } /// # Safety @@ -42,6 +44,7 @@ pub unsafe fn new<R: RuleType>( FlatPairs { queue, input, + line_index: Rc::new(LineIndex::new(input)), start, end, } @@ -107,7 +110,14 @@ impl<'i, R: RuleType> Iterator for FlatPairs<'i, R> { return None; } - let pair = unsafe { pair::new(Rc::clone(&self.queue), self.input, self.start) }; + let pair = unsafe { + pair::new( + Rc::clone(&self.queue), + self.input, + Rc::clone(&self.line_index), + self.start, + ) + }; self.next_start(); Some(pair) @@ -122,7 +132,14 @@ impl<'i, R: RuleType> DoubleEndedIterator for FlatPairs<'i, R> { self.next_start_from_end(); - let pair = unsafe { pair::new(Rc::clone(&self.queue), self.input, self.end) }; + let pair = unsafe { + pair::new( + Rc::clone(&self.queue), + self.input, + Rc::clone(&self.line_index), + self.end, + ) + }; Some(pair) } @@ -141,6 +158,7 @@ impl<'i, R: Clone> Clone for FlatPairs<'i, R> { FlatPairs { queue: Rc::clone(&self.queue), input: self.input, + line_index: Rc::clone(&self.line_index), start: self.start, end: self.end, } |