Skip to content

Instantly share code, notes, and snippets.

fn render_docs(source: &Path, dest: &Path) -> Result<(), io::Error> {
let dir_list = try!(read_dir(source)
.map_err(|e| Error::Io(source.to_path_buf(), e)));
for entry_res in dir_list {
let entry = try!(entry_res
.map_err(|e| Error::Io(source.to_path_buf(), e)));
let path = entry.path();
let file = try!(File::open(&path)
.map_err(|e| Error::Io(path.clone(), e)));
for line_res in file.lines() {
fn render_docs(source: &Path, dest: &Path) -> Result<(), io::Error> {
let dir_list = try!(read_dir(source).context(source));
for entry_res in dir_list {
let entry = try!(entry_res.context(source));
let path = entry.path();
let file = try!(File::open(&path).context(&path));
for line_res in file.lines() {
let line = try!(line_res.context(&path));
// ...
fn render_docs(source: &Path, dest: &Path) -> Result<(), io::Error> {
for entry_res in try!(read_dir(source)) {
let entry = try!(entry_res);
let file = try!(File::open(&entry.path());
for line_res in file.lines() {
let line = try!(line_res);
// ...
if wrong_syntax_flag {
return Err(io::Error::new(io::ErrorKind::Other,
"Wrong syntax"));
quick_error! {
enum DocsError {
Io(path: PathBuf, io::Error) {
context(path: &Path, err: io::Error)
-> (path.to_path_buf(), err)
}
Format(path: PathBuf, lineno: usize, doc::FormatError) {
context(file_line: (&Path, usize), err: io::Error)
-> (file_line.0.to_path_buf(), file_line.1, err)
}
enum DocsError {
Io(path: PathBuf, io::Error),
Format(path: PathBuf, lineno: usize, doc::FormatError),
}
enum DocsError {
Io(path: PathBuf, io::Error),
Format(path: PathBuf, lineno: usize, doc::FormatError),
}
enum DocsError {
Io(io::Error),
Format(doc::FormatError),
}
fn render_docs(source: &Path, &dest: &Path) -> Result<(), ErrorType> {
// ... read files at source
// ... write files to dest
Ok(())
}
fn main() {
// .. parse command line
match render_docs(&src, &dst) {
Ok(()) => {}
let mut file = try!(File::open(fname).context(fname));
try!(file.read_to_string(&mut buf).context(fname));
try!(buf.parse().context(fname))
[dependencies.quick-error]
git = "http://github.com/tailhook/quick-error"
branch = "context2"