Function infer::get_from_path

source ·
pub fn get_from_path<P: AsRef<Path>>(path: P) -> Result<Option<Type>>
Expand description

Returns the file type of the file given a path.

Errors

Returns an error if we fail to read the path.

Examples

let kind = infer::get_from_path("testdata/sample.jpg")
    .expect("file read successfully")
    .expect("file type is known");

assert_eq!(kind.mime_type(), "image/jpeg");
assert_eq!(kind.extension(), "jpg");
Examples found in repository?
examples/file.rs (line 14)
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
fn main() {
    let mut args = args();
    let path = match args.nth(1) {
        Some(path) => path,
        None => {
            eprintln!("Please specify the file path");
            exit(1);
        }
    };

    match infer::get_from_path(path) {
        Ok(Some(info)) => {
            println!("Through the arcane magic of this crate we determined the file type to be");
            println!("mime type: {}", info.mime_type());
            println!("extension: {}", info.extension());
        }
        Ok(None) => {
            eprintln!("Unknown file type 😞");
            eprintln!("If you think infer should be able to recognize this file type open an issue on GitHub!");
            exit(1);
        }
        Err(e) => {
            eprintln!("Looks like something went wrong 😔");
            eprintln!("{}", e);
            exit(1);
        }
    }
}