KVBLRDOUFRYB6BPOQJDD7OVBYMTTPDAUX7CJ5DC3U7WFRI5OLWRAC
}
}
Some(Record::SolveOrderConflict { change: c, local }) => {
// If the last record solved a conflict, replace
// the empty "solving" line with this change.
if change.up_context.len() == 1 && change.up_context[0].change.is_none() {
if let Atom::NewVertex(mut c) = c {
c.down_context.extend(change.down_context.into_iter());
c.start = change.start;
c.end = change.end;
self.rec.actions.push(Record::SolveOrderConflict {
change: Atom::NewVertex(c),
local,
});
return Ok(());
}
} else {
self.rec
.actions
.push(Record::SolveOrderConflict { change: c, local })
if let Some(cap) = CONTEXT.captures(h) {
if h.starts_with("+ ") {
if let Atom::NewVertex(ref mut change) = change {
if change.start == change.end {
change.start = ChangePosition(contents_.len() as u64);
}
text_changes::parse_line_add(h, change, contents_)
}
} else if let Some(cap) = CONTEXT.captures(h) {
change.start = ChangePosition(contents_.len() as u64);
change.end = ChangePosition(contents_.len() as u64);
if let (Some(new_start), Some(new_end)) = (cap.get(4), cap.get(5)) {
let new_start = new_start.as_str().parse::<u64>().unwrap();
let new_end = new_end.as_str().parse::<u64>().unwrap();
change.start = ChangePosition(contents_.len() as u64);
change.end =
ChangePosition(contents_.len() as u64 + new_end - new_start);
offsets.insert(new_end, change.end);
}