diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-19 00:47:55 +0000 |
commit | 26a029d407be480d791972afb5975cf62c9360a6 (patch) | |
tree | f435a8308119effd964b339f76abb83a57c29483 /third_party/rust/jsparagus-ast/src/source_location.rs | |
parent | Initial commit. (diff) | |
download | firefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz firefox-26a029d407be480d791972afb5975cf62c9360a6.zip |
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/rust/jsparagus-ast/src/source_location.rs')
-rw-r--r-- | third_party/rust/jsparagus-ast/src/source_location.rs | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/third_party/rust/jsparagus-ast/src/source_location.rs b/third_party/rust/jsparagus-ast/src/source_location.rs new file mode 100644 index 0000000000..2219fa451e --- /dev/null +++ b/third_party/rust/jsparagus-ast/src/source_location.rs @@ -0,0 +1,32 @@ +#[derive(Debug, PartialEq, Eq, Clone, Copy, Hash)] +pub struct SourceLocation { + pub start: usize, + pub end: usize, +} + +impl SourceLocation { + pub fn new(start: usize, end: usize) -> Self { + debug_assert!(start <= end); + + Self { start, end } + } + + pub fn from_parts(start: SourceLocation, end: SourceLocation) -> Self { + debug_assert!(start.start <= end.end); + + Self { + start: start.start, + end: end.end, + } + } + + pub fn set_range(&mut self, start: SourceLocation, end: SourceLocation) { + debug_assert!(start.start <= end.end); + self.start = start.start; + self.end = end.end; + } + + pub fn default() -> Self { + Self { start: 0, end: 0 } + } +} |