Skip to content

Commit f34c83c

Browse files
committed
version 0.8.0: update ordered-parallel-iterator to 0.2.0
1 parent a0802db commit f34c83c

13 files changed

+84
-235
lines changed

.github/workflows/rust.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@ jobs:
1313
steps:
1414
- uses: actions/checkout@v1
1515
- name: Build
16-
run: cargo build --verbose
16+
run: cargo build
1717
- name: Run tests
18-
run: cargo test --verbose
18+
run: cargo test

Cargo.toml

+3-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ keywords = ["hg", "mercurial", "parser"]
1010
license = "GPL-2.0-or-later"
1111
name = "hg-parser"
1212
repository = "https://github.com/kilork/hg-parser"
13-
version = "0.7.0"
13+
version = "0.8.0"
14+
rust-version = "1.78"
1415

1516
[dependencies]
1617
bitflags = {version = "2.5", default-features = false}
@@ -20,7 +21,7 @@ flate2 = "1.0"
2021
lazy_static = {version = "1.4", default-features = false}
2122
lru-cache = {version = "0.1", default-features = false}
2223
nom = {version = "7.1", default-features = false, features = ["alloc"]}
23-
ordered-parallel-iterator = {version = "0.1", default-features = false}
24+
ordered-parallel-iterator = {version = "0.2", default-features = false}
2425
rayon = {version = "1.4", default-features = false}
2526
sha-1 = {version = "0.10", default-features = false}
2627
thiserror = "1"

README.md

+12-11
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ Mercurial repository parser written in the [Rust programming language](https://w
88

99
```toml
1010
[dependencies]
11-
hg-parser = "0.6"
11+
hg-parser = "0.8"
1212
```
1313

1414
### Use case - Analyse revision log and export to ```git fast-import``` format
1515

16-
```rust
16+
```rust#ignore
1717
use hg_parser::{file_content, FileType, ManifestEntryDetails, MercurialRepository, Revision};
1818
1919
use std::env::args;
@@ -51,7 +51,7 @@ fn export_repo<P: AsRef<Path>>(path: P) -> Result<(), Error> {
5151
}
5252
}
5353
54-
let mut branch: Vec<_> = branch.unwrap_or_else(|| b"master").into();
54+
let mut branch: Vec<_> = branch.unwrap_or(b"master").into();
5555
for b in branch.iter_mut() {
5656
if *b == b' ' {
5757
*b = b'-';
@@ -66,9 +66,9 @@ fn export_repo<P: AsRef<Path>>(path: P) -> Result<(), Error> {
6666
let tz = format!("{:+03}{:02}", -timezone / 3600, ((-timezone % 3600) / 60));
6767
6868
write!(writer, "reset refs/heads/")?;
69-
writer.write_all(&mut branch)?;
69+
writer.write_all(&branch)?;
7070
write!(writer, "\ncommit refs/heads/")?;
71-
writer.write_all(&mut branch)?;
71+
writer.write_all(&branch)?;
7272
writeln!(writer, "\nmark :{}", mark(revision))?;
7373
7474
writeln!(writer, "author {} {} {}", user, time, tz)?;
@@ -87,11 +87,11 @@ fn export_repo<P: AsRef<Path>>(path: P) -> Result<(), Error> {
8787
_ => (),
8888
}
8989
90-
for mut file in changeset.files {
90+
for file in changeset.files {
9191
match (file.data, file.manifest_entry) {
9292
(None, None) => {
9393
write!(writer, "D ")?;
94-
writer.write_all(&mut file.path)?;
94+
writer.write_all(&file.path)?;
9595
writeln!(writer)?;
9696
}
9797
(Some(data), Some(manifest_entry)) => {
@@ -105,22 +105,22 @@ fn export_repo<P: AsRef<Path>>(path: P) -> Result<(), Error> {
105105
| ManifestEntryDetails::File(FileType::Regular) => "100644",
106106
}
107107
)?;
108-
writer.write_all(&mut file.path)?;
108+
writer.write_all(&file.path)?;
109109
let data = file_content(&data);
110110
writeln!(writer, "\ndata {}", data.len())?;
111-
writer.write_all(&data[..])?;
111+
writer.write_all(data)?;
112112
}
113113
_ => panic!("Wrong file data!"),
114114
}
115115
}
116116
117117
if closed {
118118
write!(writer, "reset refs/tags/archive/")?;
119-
writer.write_all(&mut branch)?;
119+
writer.write_all(&branch)?;
120120
writeln!(writer, "\nfrom :{}\n", mark(revision))?;
121121
122122
write!(writer, "reset refs/heads/")?;
123-
writer.write_all(&mut branch)?;
123+
writer.write_all(&branch)?;
124124
writeln!(writer, "\nfrom 0000000000000000000000000000000000000000\n")?;
125125
}
126126
}
@@ -141,6 +141,7 @@ fn mark<R: Into<Revision>>(rev: R) -> usize {
141141
}
142142
143143
#[derive(Debug)]
144+
#[allow(dead_code)]
144145
enum Error {
145146
MercurialRepoException(hg_parser::ErrorKind),
146147
Parse(ParseError),

examples/git-fast-import.rs

+9-9
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ fn export_repo<P: AsRef<Path>>(path: P) -> Result<(), Error> {
3535
}
3636
}
3737

38-
let mut branch: Vec<_> = branch.unwrap_or_else(|| b"master").into();
38+
let mut branch: Vec<_> = branch.unwrap_or(b"master").into();
3939
for b in branch.iter_mut() {
4040
if *b == b' ' {
4141
*b = b'-';
@@ -50,9 +50,9 @@ fn export_repo<P: AsRef<Path>>(path: P) -> Result<(), Error> {
5050
let tz = format!("{:+03}{:02}", -timezone / 3600, ((-timezone % 3600) / 60));
5151

5252
write!(writer, "reset refs/heads/")?;
53-
writer.write_all(&mut branch)?;
53+
writer.write_all(&branch)?;
5454
write!(writer, "\ncommit refs/heads/")?;
55-
writer.write_all(&mut branch)?;
55+
writer.write_all(&branch)?;
5656
writeln!(writer, "\nmark :{}", mark(revision))?;
5757

5858
writeln!(writer, "author {} {} {}", user, time, tz)?;
@@ -71,11 +71,11 @@ fn export_repo<P: AsRef<Path>>(path: P) -> Result<(), Error> {
7171
_ => (),
7272
}
7373

74-
for mut file in changeset.files {
74+
for file in changeset.files {
7575
match (file.data, file.manifest_entry) {
7676
(None, None) => {
7777
write!(writer, "D ")?;
78-
writer.write_all(&mut file.path)?;
78+
writer.write_all(&file.path)?;
7979
writeln!(writer)?;
8080
}
8181
(Some(data), Some(manifest_entry)) => {
@@ -89,22 +89,22 @@ fn export_repo<P: AsRef<Path>>(path: P) -> Result<(), Error> {
8989
| ManifestEntryDetails::File(FileType::Regular) => "100644",
9090
}
9191
)?;
92-
writer.write_all(&mut file.path)?;
92+
writer.write_all(&file.path)?;
9393
let data = file_content(&data);
9494
writeln!(writer, "\ndata {}", data.len())?;
95-
writer.write_all(&data[..])?;
95+
writer.write_all(data)?;
9696
}
9797
_ => panic!("Wrong file data!"),
9898
}
9999
}
100100

101101
if closed {
102102
write!(writer, "reset refs/tags/archive/")?;
103-
writer.write_all(&mut branch)?;
103+
writer.write_all(&branch)?;
104104
writeln!(writer, "\nfrom :{}\n", mark(revision))?;
105105

106106
write!(writer, "reset refs/heads/")?;
107-
writer.write_all(&mut branch)?;
107+
writer.write_all(&branch)?;
108108
writeln!(writer, "\nfrom 0000000000000000000000000000000000000000\n")?;
109109
}
110110
}

src/changeset.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,13 @@ impl Debug for ChangesetHeader {
4343
.iter()
4444
.map(|(key, value)| format!(
4545
"{}:{}",
46-
str::from_utf8(&key).expect("bad extra key utf8"),
47-
str::from_utf8(&value).unwrap_or("bad extra value utf8")
46+
str::from_utf8(key).expect("bad extra key utf8"),
47+
str::from_utf8(value).unwrap_or("bad extra value utf8")
4848
))
4949
.collect::<Vec<_>>()
5050
.join(","),
5151
self.files.iter()
52-
.map(|key| str::from_utf8(&key).unwrap().to_string())
52+
.map(|key| str::from_utf8(key).unwrap().to_string())
5353
.collect::<Vec<_>>()
5454
.join("\n"),
5555
str::from_utf8(&self.comment).expect("bad comment utf8"),
@@ -85,7 +85,7 @@ impl ChangesetHeader {
8585
parts.next(),
8686
) {
8787
let mut files = Vec::new();
88-
while let Some(file) = lines.next() {
88+
for file in lines.by_ref() {
8989
if file.is_empty() {
9090
break;
9191
}

src/error.rs

+1-7
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ pub enum ErrorKind {
55
Parser,
66
/// Cannot convert from Utf-8.
77
#[error("cannot convert from Utf-8 {0}")]
8-
FromUtf8(std::str::Utf8Error),
8+
FromUtf8(#[from] std::str::Utf8Error),
99
/// IO error.
1010
#[error("IO error {0}")]
1111
IO(#[from] std::io::Error),
@@ -37,9 +37,3 @@ impl From<chrono::format::ParseError> for ErrorKind {
3737
ErrorKind::InvalidDateTime(format!("{:?}", value))
3838
}
3939
}
40-
41-
impl From<std::str::Utf8Error> for ErrorKind {
42-
fn from(value: std::str::Utf8Error) -> Self {
43-
ErrorKind::FromUtf8(value)
44-
}
45-
}

0 commit comments

Comments
 (0)