CCFJ7VO3I73FE3MZRS5RSDRYNZVW7AXC345P4BXS7JIL2TU3LQJQC
CCLLB7OIFNFYJZTG3UCI7536TOCWSCSXR67VELSB466R24WLJSDAC
CIEUBH465IFZXO3YDG7XYHP54NJ4TGVQD47SKNW6P5XM4X7IVNBAC
BZSC7VMYSFRXDHDDAMCDR6X67FN5VWIBOSE76BQLX7OCVOJFUA3AC
SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC
YDKNUL6B4EFM5U2GG36SSEKXHS6XK4OLIWUVE4BUAJ5VYJFHAOIQC
I52XSRUH5RVHQBFWVMAQPTUSPAJ4KNVID2RMI3UGCVKFLYUO6WZAC
6YMDOZIB5LVYLFIDGN2WNT5JTHEAMS4TFPVDEZ3OWXWOKJOC5QDAC
JRSBH6HTYXSIZKHW6SGWAF3JCEPMFTUG4JZUSUSF73ODEGFLAAJAC
ZXTHL45OYLOICXTXXEQ6AMNSLMQFZ6BFUJWMO6LZOSDK7ERROC5AC
MU5GSJAW65PEG3BRYUKZ7O37BPHW3MOX3S5E2RFOXKGUOJEEDQ5AC
VO5OQW4W2656DIYYRNZ3PO7TQ4JOKQ3GVWE5ALUTYVMX3WMXJOYQC
73NW2X2MI767RYNTKS67ZB5QUWYEAA4SCORLD52K36ZU3JAK67AQC
Record::FileMove { .. } => "file move",
Record::FileDel { .. } => "file del",
Record::FileUndel { .. } => "file undel",
Record::SolveNameConflict { .. } => "solve name conflict",
Record::UnsolveNameConflict { .. } => "unsolve name conflict",
Record::FileAdd { .. } => "file add",
Record::Edit { .. } => "edit",
Record::Replacement { .. } => "replacement",
Record::SolveOrderConflict { .. } => "solve order conflict",
Record::UnsolveOrderConflict { .. } => "unsolve order conflict",
Record::ResurrectZombies { .. } => "resurrect zombies",
Hunk::FileMove { .. } => "file move",
Hunk::FileDel { .. } => "file del",
Hunk::FileUndel { .. } => "file undel",
Hunk::SolveNameConflict { .. } => "solve name conflict",
Hunk::UnsolveNameConflict { .. } => "unsolve name conflict",
Hunk::FileAdd { .. } => "file add",
Hunk::Edit { .. } => "edit",
Hunk::Replacement { .. } => "replacement",
Hunk::SolveOrderConflict { .. } => "solve order conflict",
Hunk::UnsolveOrderConflict { .. } => "unsolve order conflict",
Hunk::ResurrectZombies { .. } => "resurrect zombies",
Record::FileMove { path, .. } => format!("MV {}\n", path),
Record::FileDel { path, .. } => format!("D {}\n", path),
Record::FileUndel { path, .. } => format!("UD {}\n", path),
Record::FileAdd { path, .. } => format!("A {}", path),
Record::SolveNameConflict { path, .. } => format!("SC {}", path),
Record::UnsolveNameConflict { path, .. } => format!("UC {}", path),
Record::Edit {
Hunk::FileMove { path, .. } => format!("MV {}\n", path),
Hunk::FileDel { path, .. } => format!("D {}\n", path),
Hunk::FileUndel { path, .. } => format!("UD {}\n", path),
Hunk::FileAdd { path, .. } => format!("A {}", path),
Hunk::SolveNameConflict { path, .. } => format!("SC {}", path),
Hunk::UnsolveNameConflict { path, .. } => format!("UC {}", path),
Hunk::Edit {
impl<Context, Local> IntoIterator for Record<Context, Local> {
type IntoIter = RecordIter<Record<Context, Local>, Atom<Context>>;
impl<Context, Local> IntoIterator for Hunk<Context, Local> {
type IntoIter = HunkIter<Hunk<Context, Local>, Atom<Context>>;
impl<Context, Local> Record<Context, Local> {
pub fn iter(&self) -> RecordIter<&Record<Context, Local>, &Atom<Context>> {
RecordIter {
impl<Context, Local> Hunk<Context, Local> {
pub fn iter(&self) -> HunkIter<&Hunk<Context, Local>, &Atom<Context>> {
HunkIter {
Record::SolveNameConflict { name, .. } => Some(name),
Record::UnsolveNameConflict { name, .. } => Some(name),
Record::Edit { change, .. } => Some(change),
Record::Replacement {
Hunk::SolveNameConflict { name, .. } => Some(name),
Hunk::UnsolveNameConflict { name, .. } => Some(name),
Hunk::Edit { change, .. } => Some(change),
Hunk::Replacement {
Record::SolveOrderConflict { change, .. } => Some(change),
Record::UnsolveOrderConflict { change, .. } => Some(change),
Record::ResurrectZombies { change, .. } => Some(change),
Hunk::SolveOrderConflict { change, .. } => Some(change),
Hunk::UnsolveOrderConflict { change, .. } => Some(change),
Hunk::ResurrectZombies { change, .. } => Some(change),
Record::SolveNameConflict { ref name, .. } => Some(&name),
Record::UnsolveNameConflict { ref name, .. } => Some(&name),
Record::Edit { change: ref c, .. } => Some(c),
Record::Replacement {
Hunk::SolveNameConflict { ref name, .. } => Some(&name),
Hunk::UnsolveNameConflict { ref name, .. } => Some(&name),
Hunk::Edit { change: ref c, .. } => Some(c),
Hunk::Replacement {
Record::SolveOrderConflict { ref change, .. } => Some(change),
Record::UnsolveOrderConflict { ref change, .. } => Some(change),
Record::ResurrectZombies { ref change, .. } => Some(change),
Hunk::SolveOrderConflict { ref change, .. } => Some(change),
Hunk::UnsolveOrderConflict { ref change, .. } => Some(change),
Hunk::ResurrectZombies { ref change, .. } => Some(change),
Record::SolveNameConflict { ref name, .. } => Some(&name),
Record::UnsolveNameConflict { ref name, .. } => Some(&name),
Record::Edit { change: ref c, .. } => Some(c),
Record::Replacement {
Hunk::SolveNameConflict { ref name, .. } => Some(&name),
Hunk::UnsolveNameConflict { ref name, .. } => Some(&name),
Hunk::Edit { change: ref c, .. } => Some(c),
Hunk::Replacement {
Record::SolveOrderConflict { ref change, .. } => Some(change),
Record::UnsolveOrderConflict { ref change, .. } => Some(change),
Record::ResurrectZombies { ref change, .. } => Some(change),
Hunk::SolveOrderConflict { ref change, .. } => Some(change),
Hunk::UnsolveOrderConflict { ref change, .. } => Some(change),
Hunk::ResurrectZombies { ref change, .. } => Some(change),
Record::FileMove { ref path, .. }
| Record::FileDel { ref path, .. }
| Record::FileUndel { ref path, .. }
| Record::SolveNameConflict { ref path, .. }
| Record::UnsolveNameConflict { ref path, .. }
| Record::FileAdd { ref path, .. } => path,
Record::Edit { ref local, .. }
| Record::Replacement { ref local, .. }
| Record::SolveOrderConflict { ref local, .. }
| Record::UnsolveOrderConflict { ref local, .. }
| Record::ResurrectZombies { ref local, .. } => &local.path,
Hunk::FileMove { ref path, .. }
| Hunk::FileDel { ref path, .. }
| Hunk::FileUndel { ref path, .. }
| Hunk::SolveNameConflict { ref path, .. }
| Hunk::UnsolveNameConflict { ref path, .. }
| Hunk::FileAdd { ref path, .. } => path,
Hunk::Edit { ref local, .. }
| Hunk::Replacement { ref local, .. }
| Hunk::SolveOrderConflict { ref local, .. }
| Hunk::UnsolveOrderConflict { ref local, .. }
| Hunk::ResurrectZombies { ref local, .. } => &local.path,
Record::FileMove { .. }
| Record::FileDel { .. }
| Record::FileUndel { .. }
| Record::SolveNameConflict { .. }
| Record::UnsolveNameConflict { .. }
| Record::FileAdd { .. } => None,
Record::Edit { ref local, .. }
| Record::Replacement { ref local, .. }
| Record::SolveOrderConflict { ref local, .. }
| Record::UnsolveOrderConflict { ref local, .. }
| Record::ResurrectZombies { ref local, .. } => Some(local.line),
Hunk::FileMove { .. }
| Hunk::FileDel { .. }
| Hunk::FileUndel { .. }
| Hunk::SolveNameConflict { .. }
| Hunk::UnsolveNameConflict { .. }
| Hunk::FileAdd { .. } => None,
Hunk::Edit { ref local, .. }
| Hunk::Replacement { ref local, .. }
| Hunk::SolveOrderConflict { ref local, .. }
| Hunk::UnsolveOrderConflict { ref local, .. }
| Hunk::ResurrectZombies { ref local, .. } => Some(local.line),