Fix for webassembly
This commit is contained in:
parent
701425ba02
commit
9b5c663740
3 changed files with 32 additions and 22 deletions
|
|
@ -101,13 +101,14 @@ where
|
||||||
deleted_text,
|
deleted_text,
|
||||||
..
|
..
|
||||||
} => {
|
} => {
|
||||||
if let Some(text) = deleted_text {
|
#[cfg(debug_assertions)]
|
||||||
debug_assert_eq!(
|
debug_assert!(
|
||||||
builder.get_slice(self.range()),
|
deleted_text
|
||||||
*text,
|
.as_ref()
|
||||||
|
.map(|text| builder.get_slice(self.range()) == *text)
|
||||||
|
.unwrap_or(true),
|
||||||
"Text to delete does not match the text in the rope"
|
"Text to delete does not match the text in the rope"
|
||||||
);
|
);
|
||||||
}
|
|
||||||
|
|
||||||
builder.delete(self.range());
|
builder.delete(self.range());
|
||||||
}
|
}
|
||||||
|
|
@ -313,20 +314,24 @@ where
|
||||||
#[cfg(debug_assertions)]
|
#[cfg(debug_assertions)]
|
||||||
deleted_text,
|
deleted_text,
|
||||||
} => {
|
} => {
|
||||||
if cfg!(debug_assertions) && deleted_text.is_some() {
|
#[cfg(debug_assertions)]
|
||||||
write!(
|
write!(
|
||||||
f,
|
f,
|
||||||
"<delete '{}' from index {}>",
|
"<delete {} from index {}>",
|
||||||
deleted_text.as_ref().unwrap_or(&"<unknown>".to_string()),
|
deleted_text
|
||||||
|
.as_ref()
|
||||||
|
.map(|text| format!("'{text}'"))
|
||||||
|
.unwrap_or(format!("{deleted_character_count} characters")),
|
||||||
index
|
index
|
||||||
)
|
)?;
|
||||||
} else {
|
|
||||||
|
#[cfg(not(debug_assertions))]
|
||||||
write!(
|
write!(
|
||||||
f,
|
f,
|
||||||
"<delete {} characters () from index {}>",
|
"<delete {deleted_character_count} characters from index {index}>",
|
||||||
deleted_character_count, index
|
)?;
|
||||||
)
|
|
||||||
}
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,9 @@
|
||||||
|
#[cfg(feature = "serde")]
|
||||||
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
|
/// A token is a string that has been normalised in some way.
|
||||||
|
/// The normalised form is used for comparison, while the original form is used for applying Operations.
|
||||||
|
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
|
||||||
#[derive(Debug, Clone)]
|
#[derive(Debug, Clone)]
|
||||||
pub struct Token<T>
|
pub struct Token<T>
|
||||||
where
|
where
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,6 @@ impl StringBuilder<'_> {
|
||||||
self.buffer
|
self.buffer
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(debug_assertions)]
|
|
||||||
pub fn get_slice(&self, range: Range<usize>) -> String {
|
pub fn get_slice(&self, range: Range<usize>) -> String {
|
||||||
let result = self
|
let result = self
|
||||||
.buffer
|
.buffer
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue