FIXME move out from lcs
(
result: impl Iterator<Item = Edit<&'a T>>,
)
| 150 | |
| 151 | // FIXME move out from lcs |
| 152 | pub(crate) fn lcs_post_change<'a, T: Same + Diffable<'a> + ?Sized + 'a>( |
| 153 | result: impl Iterator<Item = Edit<&'a T>>, |
| 154 | ) -> impl Iterator<Item = edit::collection::Edit<'a, T, <T as Diffable<'a>>::Diff>> { |
| 155 | result.map(|edit| match edit { |
| 156 | Edit::Same(left, right) => match left.diff(right) { |
| 157 | edit::Edit::Copy(t) => edit::collection::Edit::Copy(t), |
| 158 | edit::Edit::Change(diff) => edit::collection::Edit::Change(diff), |
| 159 | }, |
| 160 | Edit::Insert(value) => edit::collection::Edit::Insert(value), |
| 161 | Edit::Remove(value) => edit::collection::Edit::Remove(value), |
| 162 | }) |
| 163 | } |
| 164 | |
| 165 | #[cfg(test)] |
| 166 | mod tests { |