edit in "libpijul/src/diff/replace.rs" at line 113
+ byte: Some(bytes_pos(lines_b, from_new)),
replacement in "libpijul/src/diff/delete.rs" at line 25
[3.46]→[2.3791:3864](∅→∅) − self.delete_lines(txn, channel, diff, d, lines_a, r, encoding)?;
+ self.delete_lines(txn, channel, diff, d, lines_a, lines_b, r, encoding)?;
edit in "libpijul/src/diff/delete.rs" at line 56
edit in "libpijul/src/diff/delete.rs" at line 70
+ byte: Some(bytes_pos(lines_b, d[r].new)),
edit in "libpijul/src/diff/delete.rs" at line 84
+ byte: Some(bytes_pos(lines_b, d[r].new)),
edit in "libpijul/src/diff/delete.rs" at line 279
+ byte: Some(bytes_pos(lines_b, new)),
edit in "libpijul/src/change.rs" at line 468
+ impl<A> Atom<A> {
+ pub fn as_newvertex(&self) -> &NewVertex<A> {
+ if let Atom::NewVertex(n) = self {
+ n
+ } else {
+ panic!("Not a NewVertex")
+ }
+ }
+ }
+
edit in "libpijul/src/change.rs" at line 680
+ pub byte: Option<usize>,
edit in "libpijul/src/change.rs" at line 682
+
+ pub type Hunk<Hash, Local> = BaseHunk<Atom<Hash>, Local>;
replacement in "libpijul/src/change.rs" at line 686
[3.851191]→[3.3719:3748](∅→∅) − pub enum Hunk<Hash, Local> {
+ pub enum BaseHunk<Atom, Local> {
replacement in "libpijul/src/change.rs" at line 688
[3.851237]→[3.851237:851287](∅→∅) − del: Atom<Hash>,
− add: Atom<Hash>,
replacement in "libpijul/src/change.rs" at line 693
[3.851330]→[3.851330:851393](∅→∅) − del: Atom<Hash>,
− contents: Option<Atom<Hash>>,
+ del: Atom,
+ contents: Option<Atom>,
replacement in "libpijul/src/change.rs" at line 699
[3.851438]→[3.851438:851503](∅→∅) − undel: Atom<Hash>,
− contents: Option<Atom<Hash>>,
+ undel: Atom,
+ contents: Option<Atom>,
replacement in "libpijul/src/change.rs" at line 705
[3.851546]→[3.851546:851645](∅→∅) − add_name: Atom<Hash>,
− add_inode: Atom<Hash>,
− contents: Option<Atom<Hash>>,
+ add_name: Atom,
+ add_inode: Atom,
+ contents: Option<Atom>,
replacement in "libpijul/src/change.rs" at line 712
[3.851698]→[3.851698:851724](∅→∅) replacement in "libpijul/src/change.rs" at line 716
[3.851779]→[3.851779:851805](∅→∅) replacement in "libpijul/src/change.rs" at line 720
[3.851845]→[3.851845:851873](∅→∅) replacement in "libpijul/src/change.rs" at line 725
[3.851920]→[3.851920:851981](∅→∅) − change: Atom<Hash>,
− replacement: Atom<Hash>,
+ change: Atom,
+ replacement: Atom,
replacement in "libpijul/src/change.rs" at line 731
[3.852035]→[3.852035:852063](∅→∅) replacement in "libpijul/src/change.rs" at line 735
[3.852119]→[3.852119:852147](∅→∅) replacement in "libpijul/src/change.rs" at line 739
[3.852199]→[3.852199:852227](∅→∅) edit in "libpijul/src/change.rs" at line 1065
+ pub fn local(&self) -> Option<&Local> {
+ match self {
+ Hunk::Edit { ref local, .. }
+ | Hunk::Replacement { ref local, .. }
+ | Hunk::SolveOrderConflict { ref local, .. }
+ | Hunk::UnsolveOrderConflict { ref local, .. }
+ | Hunk::ResurrectZombies { ref local, .. } => Some(local),
+ _ => None,
+ }
+ }
+
replacement in "libpijul/src/change.rs" at line 1093
[3.863408]→[3.863408:863429](∅→∅),
[3.863429]→[3.6948:7473](∅→∅),
[3.7473]→[3.863976:863986](∅→∅),
[3.863976]→[3.863976:863986](∅→∅) − match self {
− 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),
− }
+ self.local().map(|x| x.line)
replacement in "libpijul/src/change.rs" at line 1097
[3.863995]→[3.7474:7518](∅→∅),
[3.7518]→[3.121412:121448](∅→∅),
[3.864041]→[3.121412:121448](∅→∅) − impl<Local> Hunk<Option<ChangeId>, Local> {
− pub fn globalize<T: GraphTxnT>(
+ impl<A, Local> BaseHunk<A, Local> {
+ pub fn atom_map<B, E, F: FnMut(A) -> Result<B, E>>(
replacement in "libpijul/src/change.rs" at line 1100
[3.121462]→[3.121462:121479](∅→∅),
[3.121479]→[3.7519:7579](∅→∅) − txn: &T,
− ) -> Result<Hunk<Option<Hash>, Local>, T::GraphError> {
+ mut f: F,
+ ) -> Result<BaseHunk<B, Local>, E> {
replacement in "libpijul/src/change.rs" at line 1103
[3.121565]→[3.7580:7646](∅→∅),
[3.7646]→[3.121566:121650](∅→∅),
[3.864210]→[3.121566:121650](∅→∅) − Hunk::FileMove { del, add, path } => Hunk::FileMove {
− del: del.globalize(txn)?,
− add: add.globalize(txn)?,
+ BaseHunk::FileMove { del, add, path } => BaseHunk::FileMove {
+ del: f(del)?,
+ add: f(add)?,
replacement in "libpijul/src/change.rs" at line 1108
[3.864329]→[3.7647:7675](∅→∅) replacement in "libpijul/src/change.rs" at line 1113
[3.4688]→[3.7676:7709](∅→∅),
[3.864428]→[3.7676:7709](∅→∅),
[3.7709]→[3.121651:121777](∅→∅),
[3.864463]→[3.121651:121777](∅→∅) − } => Hunk::FileDel {
− del: del.globalize(txn)?,
− contents: contents.as_ref().map(|del| del.globalize(txn).unwrap()),
+ } => BaseHunk::FileDel {
+ del: f(del)?,
+ contents: if let Some(c) = contents {
+ Some(f(c)?)
+ } else {
+ None
+ },
replacement in "libpijul/src/change.rs" at line 1123
[3.864616]→[3.7710:7740](∅→∅) replacement in "libpijul/src/change.rs" at line 1128
[3.4742]→[3.7741:7776](∅→∅),
[3.864719]→[3.7741:7776](∅→∅),
[3.7776]→[3.121778:121908](∅→∅),
[3.864756]→[3.121778:121908](∅→∅) − } => Hunk::FileUndel {
− undel: undel.globalize(txn)?,
− contents: contents.as_ref().map(|del| del.globalize(txn).unwrap()),
+ } => BaseHunk::FileUndel {
+ undel: f(undel)?,
+ contents: if let Some(c) = contents {
+ Some(f(c)?)
+ } else {
+ None
+ },
replacement in "libpijul/src/change.rs" at line 1138
[3.864913]→[3.7777:7857](∅→∅),
[3.7857]→[3.121909:121953](∅→∅),
[3.864997]→[3.121909:121953](∅→∅) − Hunk::SolveNameConflict { name, path } => Hunk::SolveNameConflict {
− name: name.globalize(txn)?,
+ BaseHunk::SolveNameConflict { name, path } => BaseHunk::SolveNameConflict {
+ name: f(name)?,
replacement in "libpijul/src/change.rs" at line 1142
[3.865077]→[3.7858:7942](∅→∅),
[3.7942]→[3.121954:121998](∅→∅),
[3.865165]→[3.121954:121998](∅→∅) − Hunk::UnsolveNameConflict { name, path } => Hunk::UnsolveNameConflict {
− name: name.globalize(txn)?,
+ BaseHunk::UnsolveNameConflict { name, path } => BaseHunk::UnsolveNameConflict {
+ name: f(name)?,
replacement in "libpijul/src/change.rs" at line 1146
[3.865245]→[3.7943:7971](∅→∅) replacement in "libpijul/src/change.rs" at line 1152
[3.1176]→[3.7972:8005](∅→∅),
[3.865376]→[3.7972:8005](∅→∅),
[3.8005]→[3.121999:122189](∅→∅),
[3.865411]→[3.121999:122189](∅→∅) − } => Hunk::FileAdd {
− add_name: add_name.globalize(txn)?,
− add_inode: add_inode.globalize(txn)?,
− contents: contents.as_ref().map(|add| add.globalize(txn).unwrap()),
+ } => BaseHunk::FileAdd {
+ add_name: f(add_name)?,
+ add_inode: f(add_inode)?,
+ contents: if let Some(c) = contents {
+ Some(f(c)?)
+ } else {
+ None
+ },
replacement in "libpijul/src/change.rs" at line 1163
[3.865627]→[3.2046:2071](∅→∅) replacement in "libpijul/src/change.rs" at line 1167
[3.2144]→[3.2144:2174](∅→∅),
[3.2174]→[3.122190:122238](∅→∅),
[3.8063]→[3.122190:122238](∅→∅),
[3.865688]→[3.122190:122238](∅→∅) − } => Hunk::Edit {
− change: change.globalize(txn)?,
+ } => BaseHunk::Edit {
+ change: f(change)?,
replacement in "libpijul/src/change.rs" at line 1172
[3.865773]→[3.8064:8096](∅→∅) + BaseHunk::Replacement {
replacement in "libpijul/src/change.rs" at line 1177
[3.2228]→[3.8097:8134](∅→∅),
[3.865883]→[3.8097:8134](∅→∅),
[3.8134]→[3.122239:122345](∅→∅),
[3.865922]→[3.122239:122345](∅→∅) − } => Hunk::Replacement {
− change: change.globalize(txn)?,
− replacement: replacement.globalize(txn)?,
+ } => BaseHunk::Replacement {
+ change: f(change)?,
+ replacement: f(replacement)?,
replacement in "libpijul/src/change.rs" at line 1183
[3.866064]→[3.8135:8220](∅→∅),
[3.8220]→[3.122346:122394](∅→∅),
[3.866153]→[3.122346:122394](∅→∅) − Hunk::SolveOrderConflict { change, local } => Hunk::SolveOrderConflict {
− change: change.globalize(txn)?,
+ BaseHunk::SolveOrderConflict { change, local } => BaseHunk::SolveOrderConflict {
+ change: f(change)?,
replacement in "libpijul/src/change.rs" at line 1187
[3.866238]→[3.8221:8310](∅→∅),
[3.8310]→[3.122395:122443](∅→∅),
[3.866331]→[3.122395:122443](∅→∅) − Hunk::UnsolveOrderConflict { change, local } => Hunk::UnsolveOrderConflict {
− change: change.globalize(txn)?,
+ BaseHunk::UnsolveOrderConflict { change, local } => BaseHunk::UnsolveOrderConflict {
+ change: f(change)?,
replacement in "libpijul/src/change.rs" at line 1191
[3.866416]→[3.2256:2293](∅→∅) − Hunk::ResurrectZombies {
+ BaseHunk::ResurrectZombies {
replacement in "libpijul/src/change.rs" at line 1195
[3.2366]→[3.2366:2408](∅→∅),
[3.2408]→[3.122444:122492](∅→∅),
[3.8392]→[3.122444:122492](∅→∅),
[3.866501]→[3.122444:122492](∅→∅) − } => Hunk::ResurrectZombies {
− change: change.globalize(txn)?,
+ } => BaseHunk::ResurrectZombies {
+ change: f(change)?,
edit in "libpijul/src/change.rs" at line 1201
+ }
+ }
+
+ impl<Local> Hunk<Option<ChangeId>, Local> {
+ pub fn globalize<T: GraphTxnT>(
+ self,
+ txn: &T,
+ ) -> Result<Hunk<Option<Hash>, Local>, T::GraphError> {
+ self.atom_map(|x| x.globalize(txn))
edit in "libpijul/src/change/text_changes.rs" at line 719
edit in "libpijul/src/change/text_changes.rs" at line 739
edit in "libpijul/src/change/text_changes.rs" at line 864
edit in "libpijul/src/change/text_changes.rs" at line 875
edit in "libpijul/src/change/text_changes.rs" at line 893