diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:02:58 +0000 |
commit | 698f8c2f01ea549d77d7dc3338a12e04c11057b9 (patch) | |
tree | 173a775858bd501c378080a10dca74132f05bc50 /vendor/pest/src/iterators/queueable_token.rs | |
parent | Initial commit. (diff) | |
download | rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.tar.xz rustc-698f8c2f01ea549d77d7dc3338a12e04c11057b9.zip |
Adding upstream version 1.64.0+dfsg1.upstream/1.64.0+dfsg1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r-- | vendor/pest/src/iterators/queueable_token.rs | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/vendor/pest/src/iterators/queueable_token.rs b/vendor/pest/src/iterators/queueable_token.rs new file mode 100644 index 000000000..7d56749bb --- /dev/null +++ b/vendor/pest/src/iterators/queueable_token.rs @@ -0,0 +1,27 @@ +// pest. The Elegant Parser +// Copyright (c) 2018 DragoČ™ Tiselice +// +// Licensed under the Apache License, Version 2.0 +// <LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0> or the MIT +// license <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. All files in the project carrying such notice may not be copied, +// modified, or distributed except according to those terms. + +// This structure serves to improve performance over Token objects in two ways: +// +// * it is smaller than a Token, leading to both less memory use when stored in the queue but also +// increased speed when pushing to the queue +// * it finds its pair in O(1) time instead of O(N), since pair positions are known at parse time +// and can easily be stored instead of recomputed +#[derive(Debug)] +pub enum QueueableToken<R> { + Start { + end_token_index: usize, + input_pos: usize, + }, + End { + start_token_index: usize, + rule: R, + input_pos: usize, + }, +} |