summaryrefslogtreecommitdiffstats
path: root/vendor/imara-diff/src/myers/slice.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/imara-diff/src/myers/slice.rs')
-rw-r--r--vendor/imara-diff/src/myers/slice.rs65
1 files changed, 0 insertions, 65 deletions
diff --git a/vendor/imara-diff/src/myers/slice.rs b/vendor/imara-diff/src/myers/slice.rs
deleted file mode 100644
index 0f99121b4..000000000
--- a/vendor/imara-diff/src/myers/slice.rs
+++ /dev/null
@@ -1,65 +0,0 @@
-use std::mem::take;
-use std::ops::RangeBounds;
-
-use crate::intern::Token;
-use crate::myers::preprocess::PreprocessedFile;
-use crate::util::common_edges;
-
-#[derive(Default)]
-pub struct FileSlice<'a> {
- pub tokens: &'a [Token],
- indices: &'a [u32],
- changed: &'a mut [bool],
-}
-
-impl<'a> FileSlice<'a> {
- pub fn new(file: &'a mut PreprocessedFile) -> Self {
- Self { tokens: &file.tokens, indices: &file.indices, changed: &mut file.is_changed }
- }
-
- pub fn mark_changed(&mut self) {
- for &i in self.indices {
- self.changed[i as usize] = true;
- }
- }
-
- pub fn borrow(&mut self) -> FileSlice {
- FileSlice { tokens: self.tokens, changed: self.changed, indices: self.indices }
- }
-
- pub fn slice<R: RangeBounds<u32>>(self, range: R) -> Self {
- let start = match range.start_bound() {
- std::ops::Bound::Included(&start) => start,
- std::ops::Bound::Excluded(&start) => start + 1,
- std::ops::Bound::Unbounded => 0,
- };
-
- let end = match range.end_bound() {
- std::ops::Bound::Included(&end) => end + 1,
- std::ops::Bound::Excluded(&end) => end,
- std::ops::Bound::Unbounded => self.len(),
- };
-
- Self {
- tokens: &self.tokens[start as usize..end as usize],
- changed: self.changed,
- indices: &self.indices[start as usize..end as usize],
- }
- }
-
- pub fn strip_common(&mut self, other: &mut Self) {
- let (start, common_postfix) = common_edges(self.tokens, other.tokens);
- let end = self.len() - common_postfix;
- *self = take(self).slice(start..end);
- let end = other.len() - common_postfix;
- *other = take(other).slice(start..end)
- }
-
- pub fn len(&self) -> u32 {
- self.tokens.len() as u32
- }
-
- pub fn is_empty(&self) -> bool {
- self.tokens.is_empty()
- }
-}