Crate fs_err[−][src]
fs-err is a drop-in replacement for std::fs that provides more
helpful messages on errors. Extra information includes which operations was
attempted and any involved paths.
Error Messages
Using std::fs, if this code fails:
let file = File::open("does not exist.txt")?;
The error message that Rust gives you isn’t very useful:
The system cannot find the file specified. (os error 2)
…but if we use fs-err instead, our error contains more actionable information:
failed to open file `does not exist.txt`
caused by: The system cannot find the file specified. (os error 2)
Usage
fs-err’s API is the same as std::fs, so migrating code to use it is easy.
// use std::fs; use fs_err as fs; let contents = fs::read_to_string("foo.txt")?; println!("Read foo.txt: {}", contents);
fs-err uses std::io::Error for all errors. This helps fs-err
compose well with traits from the standard library like
std::io::Read and crates that use them like
serde_json:
use fs_err::File; let file = File::open("my-config.json")?; // If an I/O error occurs inside serde_json, the error will include a file path // as well as what operation was being performed. let decoded: Vec<String> = serde_json::from_reader(file)?; println!("Program config: {:?}", decoded);
Modules
| os | OS-specific functionality. |
Structs
| DirEntry | Wrapper around |
| File | Wrapper around |
| OpenOptions | Wrapper around |
| ReadDir | Wrapper around |
Traits
| PathExt | Defines aliases on |
Functions
| canonicalize | Wrapper for |
| copy | Wrapper for |
| create_dir | Wrapper for |
| create_dir_all | Wrapper for |
| hard_link | Wrapper for |
| metadata | Wrapper for |
| read | Wrapper for |
| read_dir | Wrapper for |
| read_link | Wrapper for |
| read_to_string | Wrapper for |
| remove_dir | Wrapper for |
| remove_dir_all | Wrapper for |
| remove_file | Wrapper for |
| rename | Wrapper for |
| set_permissions | Wrapper for |
| soft_link | Deprecated Wrapper for |
| symlink_metadata | Wrapper for |
| write | Wrapper for |