use std::hash::Hash; use percent_encoding::{percent_decode, AsciiSet, CONTROLS}; use crate::{ dmp::{Diff, DiffMatchPatch, Time}, Ops, }; pub type Efficient = u8; pub type Compat = char; // Appending controls to ensure exact same encoding as cpp variant const ENCODE_SET: &AsciiSet = &CONTROLS .add(b'"') .add(b'<') .add(b'>') .add(b'`') .add(b'{') .add(b'}') .add(b'%') .add(b'[') .add(b'\\') .add(b']') .add(b'^') .add(b'|'); pub trait DType: Copy + Ord + Eq + Hash { fn bisect_split( dmp: &DiffMatchPatch, old: &[Self], new: &[Self], x: usize, y: usize, deadline: Option