diff --git a/src/operation_transformation.rs b/src/operation_transformation.rs index 85e3995..bc01e34 100644 --- a/src/operation_transformation.rs +++ b/src/operation_transformation.rs @@ -1,8 +1,10 @@ +mod diff_error; mod edited_text; mod operation; mod utils; use std::fmt::Debug; +pub use diff_error::DiffError; pub use edited_text::EditedText; pub use operation::Operation; diff --git a/src/wasm.rs b/src/wasm.rs index 1b7a24b..6fc02f2 100644 --- a/src/wasm.rs +++ b/src/wasm.rs @@ -105,16 +105,17 @@ pub fn diff(parent: &str, changed: &TextWithCursors, tokenizer: BuiltinTokenizer pub fn undiff(parent: &str, diff: Vec, tokenizer: BuiltinTokenizer) -> String { set_panic_hook(); - EditedText::from_diff( + match EditedText::from_diff( parent, diff.into_iter() .map(std::convert::TryInto::try_into) .collect::>() .expect("Invalid diff format"), &*tokenizer, - ) - .apply() - .text() + ) { + Ok(edited_text) => edited_text.apply().text(), + Err(e) => panic!("{}", e), + } } fn set_panic_hook() { diff --git a/tests/test.rs b/tests/test.rs index 2b14b86..2e54e6c 100644 --- a/tests/test.rs +++ b/tests/test.rs @@ -57,9 +57,9 @@ fn test_document_one_way_with_serialisation() { .unwrap(); let restored_left_operations = - EditedText::from_diff(&parent, serialised_left, &*BuiltinTokenizer::Word); + EditedText::from_diff(&parent, serialised_left, &*BuiltinTokenizer::Word).unwrap(); let restored_right_operations = - EditedText::from_diff(&parent, serialised_right, &*BuiltinTokenizer::Word); + EditedText::from_diff(&parent, serialised_right, &*BuiltinTokenizer::Word).unwrap(); doc.assert_eq_without_cursors( &restored_left_operations