Skip to content

Commit 2eacd13

Browse files
committed
better error handling
1 parent 267c070 commit 2eacd13

File tree

2 files changed

+35
-29
lines changed

2 files changed

+35
-29
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "enforcer"
3-
version = "0.8.4"
3+
version = "0.8.5"
44
authors = ["Oliver Mueller <oliver.mueller@gmail.com>"]
55

66
[dependencies]

src/main.rs

Lines changed: 34 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -128,27 +128,26 @@ fn main() {
128128

129129
pool.scoped(|scope| {
130130
for path in paths {
131-
let ch: SyncSender<u8> = w_chan.clone();
131+
let ch: SyncSender<Result<u8, std::io::Error>> = w_chan.clone();
132132
let l_ch: SyncSender<Option<String>> = logging_tx.clone();
133133
scope.execute(move || {
134134
if !check::is_dir(path.as_path()) {
135135
let p = path.clone();
136136
match Mmap::open_path(path, Protection::Read) {
137137
Ok(map) => {
138138
let buf = unsafe { map.as_slice() };
139-
let r = check::check_path(p.as_path(),
140-
buf,
141-
clean_f,
142-
!quiet_f,
143-
max_line_length,
144-
if tabs_f {
145-
clean::TabStrategy::Tabify
146-
} else {
147-
clean::TabStrategy::Untabify
148-
},
149-
l_ch)
150-
.ok()
151-
.expect(&format!("check_path for {:?} should work", p));
139+
let r = check::check_path(
140+
p.as_path(),
141+
buf,
142+
clean_f,
143+
!quiet_f,
144+
max_line_length,
145+
if tabs_f {
146+
clean::TabStrategy::Tabify
147+
} else {
148+
clean::TabStrategy::Untabify
149+
},
150+
l_ch);
152151
ch.send(r).unwrap();
153152
}
154153
Err(e) => {
@@ -157,7 +156,7 @@ fn main() {
157156
Err(_) => panic!("mmap read error: {}", e),
158157
};
159158
if len == 0 {
160-
ch.send(0).unwrap();
159+
ch.send(Ok(0)).unwrap();
161160
} else {
162161
panic!("unexpected result for {:?}", p);
163162
}
@@ -170,22 +169,29 @@ fn main() {
170169
});
171170
for _ in 0..count {
172171
match r_chan.recv() {
173-
Ok(r) => {
174-
if (r & check::HAS_TABS) > 0 {
175-
had_tabs += 1
176-
}
177-
if (r & check::TRAILING_SPACES) > 0 {
178-
had_trailing_ws += 1
179-
}
180-
if (r & check::HAS_ILLEGAL_CHARACTERS) > 0 {
181-
had_illegals += 1
182-
}
183-
if (r & check::LINE_TOO_LONG) > 0 {
184-
had_too_long_lines += 1
172+
Ok(res) => {
173+
match res {
174+
Ok(r) => {
175+
if (r & check::HAS_TABS) > 0 {
176+
had_tabs += 1
177+
}
178+
if (r & check::TRAILING_SPACES) > 0 {
179+
had_trailing_ws += 1
180+
}
181+
if (r & check::HAS_ILLEGAL_CHARACTERS) > 0 {
182+
had_illegals += 1
183+
}
184+
if (r & check::LINE_TOO_LONG) > 0 {
185+
had_too_long_lines += 1
186+
}
187+
}
188+
Err(e) => {
189+
println!("error occured here: {}", e);
190+
}
185191
}
186192
}
187193
Err(e) => {
188-
panic!("error: {}", e);
194+
panic!("error in channel: {}", e);
189195
}
190196
}
191197
checked_files += 1;

0 commit comments

Comments
 (0)