edit in "libpijul/src/working_copy/filesystem.rs" at line 297
+ &crate::diff::DEFAULT_SEPARATOR,
edit in "libpijul/src/record.rs" at line 282
+ diff_separator: ®ex::bytes::Regex,
edit in "libpijul/src/record.rs" at line 310
+ let sep: regex::bytes::Regex = diff_separator.clone();
edit in "libpijul/src/record.rs" at line 323
edit in "libpijul/src/record.rs" at line 448
edit in "libpijul/src/record.rs" at line 753
+ diff_sep: ®ex::bytes::Regex,
edit in "libpijul/src/record.rs" at line 877
replacement in "libpijul/src/pristine/inode.rs" at line 57
[2.2085]→[2.2085:2190](∅→∅) − if data_encoding::BASE32_NOPAD
− .decode_mut(s, &mut b)
− .is_ok()
− {
+ if data_encoding::BASE32_NOPAD.decode_mut(s, &mut b).is_ok() {
edit in "libpijul/src/lib.rs" at line 65
+ pub use crate::diff::DEFAULT_SEPARATOR;
replacement in "libpijul/src/lib.rs" at line 348
[2.4579]→[2.4579:4615](∅→∅) − P: changestore::ChangeStore
+ P: changestore::ChangeStore,
edit in "libpijul/src/diff/split.rs" at line 7
+ m: regex::bytes::Matches<'a, 'a>,
replacement in "libpijul/src/diff/split.rs" at line 11
[3.778828]→[3.778828:778867](∅→∅) − pub fn lines(&self) -> LineSplit {
+ pub fn lines<'a>(&'a self, r: &'a regex::bytes::Regex) -> LineSplit<'a> {
edit in "libpijul/src/diff/split.rs" at line 16
+ m: r.find_iter(&self.contents_a),
edit in "libpijul/src/diff/split.rs" at line 23
+ LineSplit {
+ buf,
+ missing_eol: None,
+ current: 0,
+ m: super::DEFAULT_SEPARATOR.find_iter(buf),
+ }
+ }
+ }
+
+ impl<'a> LineSplit<'a> {
+ pub fn from_bytes_with_sep(buf: &'a [u8], sep: &'a regex::bytes::Regex) -> LineSplit<'a> {
edit in "libpijul/src/diff/split.rs" at line 38
replacement in "libpijul/src/diff/split.rs" at line 46
[3.779341]→[3.779341:779822](∅→∅) − if self.current >= self.buf.len() {
− return None;
− }
− let current = self.current;
− while self.current < self.buf.len() && self.buf[self.current] != b'\n' {
− self.current += 1
− }
− if self.current < self.buf.len() {
− self.current += 1
− }
− let mut last = self.current;
− if let Some(miss) = self.missing_eol {
− if miss.contains(&(self.current - 1)) {
− last -= 1
+ if let Some(m) = self.m.next() {
+ let start = self.current;
+ let next = m.end();
+ self.current = next;
+
+ let mut last = next;
+ if let Some(miss) = self.missing_eol {
+ if miss.contains(&(self.current - 1)) {
+ last -= 1
+ }
edit in "libpijul/src/diff/split.rs" at line 57
+ Some(&self.buf[start..last])
+ } else if self.current < self.buf.len() {
+ let cur = self.current;
+ self.current = self.buf.len();
+ Some(&self.buf[cur..])
+ } else {
+ None
edit in "libpijul/src/diff/split.rs" at line 65
[3.779846]→[3.779846:779885](∅→∅) − Some(&self.buf[current..last])
edit in "libpijul/src/diff/mod.rs" at line 15
+
+ lazy_static! {
+ pub static ref DEFAULT_SEPARATOR: regex::bytes::Regex = regex::bytes::Regex::new("\n").unwrap();
+ }
replacement in "libpijul/src/diff/mod.rs" at line 77
− fn make_old_lines(d: &vertex_buffer::Diff) -> Vec<Line> {
− d.lines()
+ fn make_old_lines<'a>(d: &'a vertex_buffer::Diff, r: &'a regex::bytes::Regex) -> Vec<Line<'a>> {
+ d.lines(r)
replacement in "libpijul/src/diff/mod.rs" at line 111
[3.1391]→[3.1391:1464](∅→∅) − fn make_new_lines(b: &[u8]) -> Vec<Line> {
− split::LineSplit::from(b)
+ fn make_new_lines<'a>(b: &'a [u8], sep: &'a regex::bytes::Regex) -> Vec<Line<'a>> {
+ split::LineSplit::from_bytes_with_sep(b, sep)
edit in "libpijul/src/diff/mod.rs" at line 140
+ separator: ®ex::bytes::Regex,
replacement in "libpijul/src/diff/mod.rs" at line 155
[3.2253]→[3.2253:2306](∅→∅) − (make_old_lines(&d), make_new_lines(&b))
+ (make_old_lines(&d, separator), make_new_lines(&b, separator))
edit in "libpijul/src/alive/mod.rs" at line 50
+
+ pub fn new(vertex: Vertex<ChangeId>) -> Self {
+ AliveVertex {
+ vertex,
+ flags: Flags::empty(),
+ children: 0,
+ n_children: 0,
+ index: 0,
+ lowlink: 0,
+ scc: 0,
+ extra: Vec::new(),
+ }
+ }
replacement in "libpijul/src/alive/mod.rs" at line 66
[3.996275]→[3.996275:996315](∅→∅),
[3.996315]→[3.149336:149391](∅→∅) − pub(crate) lines: Vec<AliveVertex>,
− children: Vec<(Option<SerializedEdge>, VertexId)>,
+ pub lines: Vec<AliveVertex>,
+ pub children: Vec<(Option<SerializedEdge>, VertexId)>,
replacement in "libpijul/src/alive/mod.rs" at line 93
[3.996938]→[3.149392:149482](∅→∅) − pub(crate) fn children(&self, i: VertexId) -> &[(Option<SerializedEdge>, VertexId)] {
+ pub fn push_child_to_last(&mut self, e: Option<SerializedEdge>, j: VertexId) {
+ let line = self.lines.last_mut().unwrap();
+ self.children.push((e, j));
+ line.n_children += 1;
+ }
+
+ pub fn children<'a>(
+ &'a self,
+ i: VertexId,
+ ) -> impl Iterator<Item = &'a (Option<SerializedEdge>, VertexId)> {
replacement in "libpijul/src/alive/mod.rs" at line 104
[3.7933]→[3.997050:997121](∅→∅),
[3.997050]→[3.997050:997121](∅→∅) − &self.children[line.children..line.children + line.n_children]
+ (&self.children[line.children..line.children + line.n_children])
+ .iter()
+ .chain(self[i].extra.iter())
replacement in "libpijul/src/alive/mod.rs" at line 110
[3.149567]→[3.997202:997247](∅→∅),
[3.997202]→[3.997202:997247](∅→∅) − &self.children[self[i].children + j]
+ let line = &self[i];
+ if j < line.n_children {
+ &self.children[self[i].children + j]
+ } else {
+ &line.extra[j - line.n_children]
+ }
replacement in "libpijul/src/alive/debug.rs" at line 112
[3.1018658]→[3.1018658:1018777](∅→∅) − for &(edge, VertexId(j)) in
− &self.children[line.children..line.children + line.n_children]
+ for &(edge, VertexId(j)) in (self.children
+ [line.children..line.children + line.n_children])
+ .iter()
+ .chain(line.extra.iter())
replacement in "libpijul/src/alive/debug.rs" at line 132
[3.1019363]→[3.1019363:1019429](∅→∅) − writeln!(w, "n_{}->n_0[label=\"none\"];", i)?
+ writeln!(w, "n_{}->n_{}[label=\"none\"];", i, j)?
replacement in "libpijul/src/alive/debug.rs" at line 156
[3.1020075]→[3.1020075:1020194](∅→∅) − for &(edge, VertexId(j)) in
− &self.children[line.children..line.children + line.n_children]
+ for &(edge, VertexId(j)) in self.children
+ [line.children..line.children + line.n_children]
+ .iter()
+ .chain(line.extra.iter())
replacement in "libpijul/src/alive/debug.rs" at line 171
[3.1020569]→[3.1020569:1020635](∅→∅) − writeln!(w, "n_{}->n_0[label=\"none\"];", i)?
+ writeln!(w, "n_{}->n_{}[label=\"none\"];", i, j)?