echoes 0.12.0

Find duplicated Rust doctests, functions and contexts
Documentation
[
  {
    "id": "pc_split",
    "family": "char_patterns",
    "a": "fn f(s: &str) -> Vec<&str> { s.split(\",\").collect() } fn main(){ println!(\"{:?}\", f(\"a,b,,c\")); }",
    "b": "fn f(s: &str) -> Vec<&str> { s.split(',').collect() } fn main(){ println!(\"{:?}\", f(\"a,b,,c\")); }",
    "expected": "same",
    "expect": {
      "a": {
        "off": {
          "compile": "ok",
          "run": "value",
          "stdout": "[\"a\", \"b\", \"\", \"c\"]\n"
        },
        "on": {
          "compile": "ok",
          "run": "value",
          "stdout": "[\"a\", \"b\", \"\", \"c\"]\n"
        }
      },
      "b": {
        "off": {
          "compile": "ok",
          "run": "value",
          "stdout": "[\"a\", \"b\", \"\", \"c\"]\n"
        },
        "on": {
          "compile": "ok",
          "run": "value",
          "stdout": "[\"a\", \"b\", \"\", \"c\"]\n"
        }
      }
    }
  },
  {
    "id": "pc_multibyte",
    "family": "char_patterns",
    "a": "fn f(s: String) -> Vec<String> { s.rsplit(\"\\u{e9}\").map(String::from).collect() } fn main(){ println!(\"{:?}\", f(String::from(\"a\\u{e9}b\\u{e9}\"))); }",
    "b": "fn f(s: String) -> Vec<String> { s.rsplit('\\u{e9}').map(String::from).collect() } fn main(){ println!(\"{:?}\", f(String::from(\"a\\u{e9}b\\u{e9}\"))); }",
    "expected": "same",
    "expect": {
      "a": {
        "off": {
          "compile": "ok",
          "run": "value",
          "stdout": "[\"\", \"b\", \"a\"]\n"
        },
        "on": {
          "compile": "ok",
          "run": "value",
          "stdout": "[\"\", \"b\", \"a\"]\n"
        }
      },
      "b": {
        "off": {
          "compile": "ok",
          "run": "value",
          "stdout": "[\"\", \"b\", \"a\"]\n"
        },
        "on": {
          "compile": "ok",
          "run": "value",
          "stdout": "[\"\", \"b\", \"a\"]\n"
        }
      }
    }
  },
  {
    "id": "pc_replace",
    "family": "char_patterns",
    "a": "fn f(s: &str) -> (String, usize) { let r = s.replace(\",\", \";\"); let c = r.capacity(); (r, c) } fn main(){ println!(\"{:?}\", f(\"a,b,c\")); }",
    "b": "fn f(s: &str) -> (String, usize) { let r = s.replace(',', \";\"); let c = r.capacity(); (r, c) } fn main(){ println!(\"{:?}\", f(\"a,b,c\")); }",
    "expected": "same",
    "expect": {
      "a": {
        "off": {
          "compile": "ok",
          "run": "value",
          "stdout": "(\"a;b;c\", 5)\n"
        },
        "on": {
          "compile": "ok",
          "run": "value",
          "stdout": "(\"a;b;c\", 5)\n"
        }
      },
      "b": {
        "off": {
          "compile": "ok",
          "run": "value",
          "stdout": "(\"a;b;c\", 5)\n"
        },
        "on": {
          "compile": "ok",
          "run": "value",
          "stdout": "(\"a;b;c\", 5)\n"
        }
      }
    }
  },
  {
    "id": "pc_search",
    "family": "char_patterns",
    "a": "fn f(s: &str) -> (Option<usize>, Option<usize>, Option<(&str, &str)>, usize, &str) { (s.find(\"\\n\"), s.rfind(\"\\n\"), s.rsplit_once(\"\\n\"), s.splitn(2, \"\\n\").count(), s.trim_start_matches(\"\\n\")) } fn main(){ println!(\"{:?}\", f(\"\\nab\\ncd\")); }",
    "b": "fn f(s: &str) -> (Option<usize>, Option<usize>, Option<(&str, &str)>, usize, &str) { (s.find('\\n'), s.rfind('\\n'), s.rsplit_once('\\n'), s.splitn(2, '\\n').count(), s.trim_start_matches('\\n')) } fn main(){ println!(\"{:?}\", f(\"\\nab\\ncd\")); }",
    "expected": "same",
    "expect": {
      "a": {
        "off": {
          "compile": "ok",
          "run": "value",
          "stdout": "(Some(0), Some(3), Some((\"\\nab\", \"cd\")), 2, \"ab\\ncd\")\n"
        },
        "on": {
          "compile": "ok",
          "run": "value",
          "stdout": "(Some(0), Some(3), Some((\"\\nab\", \"cd\")), 2, \"ab\\ncd\")\n"
        }
      },
      "b": {
        "off": {
          "compile": "ok",
          "run": "value",
          "stdout": "(Some(0), Some(3), Some((\"\\nab\", \"cd\")), 2, \"ab\\ncd\")\n"
        },
        "on": {
          "compile": "ok",
          "run": "value",
          "stdout": "(Some(0), Some(3), Some((\"\\nab\", \"cd\")), 2, \"ab\\ncd\")\n"
        }
      }
    }
  },
  {
    "id": "pc_push",
    "family": "char_patterns",
    "a": "fn f(s: &mut String) { s.push_str(\"\\u{e9}\") } fn main(){ let mut s = String::with_capacity(1); for _ in 0..3 { f(&mut s); println!(\"{} {}\", s, s.capacity()); } }",
    "b": "fn f(s: &mut String) { s.push('\\u{e9}') } fn main(){ let mut s = String::with_capacity(1); for _ in 0..3 { f(&mut s); println!(\"{} {}\", s, s.capacity()); } }",
    "expected": "same",
    "expect": {
      "a": {
        "off": {
          "compile": "ok",
          "run": "value",
          "stdout": "é 8\néé 8\nééé 8\n"
        },
        "on": {
          "compile": "ok",
          "run": "value",
          "stdout": "é 8\néé 8\nééé 8\n"
        }
      },
      "b": {
        "off": {
          "compile": "ok",
          "run": "value",
          "stdout": "é 8\néé 8\nééé 8\n"
        },
        "on": {
          "compile": "ok",
          "run": "value",
          "stdout": "é 8\néé 8\nééé 8\n"
        }
      }
    }
  },
  {
    "id": "pc_push_ascii",
    "family": "char_patterns",
    "a": "fn f(s: &mut String) { s.push_str(\"a\") } fn main(){ let mut s = String::new(); for _ in 0..9 { f(&mut s); } println!(\"{} {}\", s, s.capacity()); }",
    "b": "fn f(s: &mut String) { s.push('a') } fn main(){ let mut s = String::new(); for _ in 0..9 { f(&mut s); } println!(\"{} {}\", s, s.capacity()); }",
    "expected": "same",
    "expect": {
      "a": {
        "off": {
          "compile": "ok",
          "run": "value",
          "stdout": "aaaaaaaaa 16\n"
        },
        "on": {
          "compile": "ok",
          "run": "value",
          "stdout": "aaaaaaaaa 16\n"
        }
      },
      "b": {
        "off": {
          "compile": "ok",
          "run": "value",
          "stdout": "aaaaaaaaa 16\n"
        },
        "on": {
          "compile": "ok",
          "run": "value",
          "stdout": "aaaaaaaaa 16\n"
        }
      }
    }
  },
  {
    "id": "pc_two_chars",
    "family": "char_patterns",
    "a": "fn f(s: &str) -> Vec<&str> { s.split(\"ab\").collect() } fn main(){ println!(\"{:?}\", f(\"xabyaz\")); }",
    "b": "fn f(s: &str) -> Vec<&str> { s.split('a').collect() } fn main(){ println!(\"{:?}\", f(\"xabyaz\")); }",
    "expected": "different",
    "expect": {
      "a": {
        "off": {
          "compile": "ok",
          "run": "value",
          "stdout": "[\"x\", \"yaz\"]\n"
        },
        "on": {
          "compile": "ok",
          "run": "value",
          "stdout": "[\"x\", \"yaz\"]\n"
        }
      },
      "b": {
        "off": {
          "compile": "ok",
          "run": "value",
          "stdout": "[\"x\", \"by\", \"z\"]\n"
        },
        "on": {
          "compile": "ok",
          "run": "value",
          "stdout": "[\"x\", \"by\", \"z\"]\n"
        }
      }
    }
  }
]