Crate infer[−][src]
Small crate to infer file and MIME type by checking the magic number signature.
Examples
Get the type of a buffer
let buf = [0xFF, 0xD8, 0xFF, 0xAA]; let kind = infer::get(&buf).expect("file type is known"); assert_eq!(kind.mime_type(), "image/jpeg"); assert_eq!(kind.extension(), "jpg");
Check file type by path
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");
Check for specific type
let buf = [0xFF, 0xD8, 0xFF, 0xAA]; assert!(infer::image::is_jpeg(&buf));
Check for specific type class
let buf = [0xFF, 0xD8, 0xFF, 0xAA]; assert!(infer::is_image(&buf));
Adds a custom file type matcher
Here we actually need to use the Infer struct to be able to declare custom matchers.
fn custom_matcher(buf: &[u8]) -> bool { return buf.len() >= 3 && buf[0] == 0x10 && buf[1] == 0x11 && buf[2] == 0x12; } let mut info = infer::Infer::new(); info.add("custom/foo", "foo", custom_matcher); let buf = [0x10, 0x11, 0x12, 0x13]; let kind = info.get(&buf).unwrap(); assert_eq!(kind.mime_type(), "custom/foo"); assert_eq!(kind.extension(), "foo");
Modules
| app | |
| archive | |
| audio | |
| book | |
| doc | |
| font | |
| image | |
| text | |
| video |
Structs
| Infer | Infer allows to use a custom set of |
| Type | Generic information for a type |
Enums
| MatcherType |
Functions
| get | Returns the file type of the buffer. |
| get_from_path | Returns the file type of the file given a path. |
| is | Determines whether a buffer is of given extension. |
| is_app | Determines whether a buffer is an application type. |
| is_archive | Determines whether a buffer is an archive type. |
| is_audio | Determines whether a buffer is an audio type. |
| is_book | Determines whether a buffer is a book type. |
| is_document | Determines whether a buffer is a document type. |
| is_font | Determines whether a buffer is a font type. |
| is_image | Determines whether a buffer is an image type. |
| is_mime | Determines whether a buffer is of given mime type. |
| is_mime_supported | Returns whether a mime type is supported. |
| is_supported | Returns whether an extension is supported. |
| is_video | Determines whether a buffer is a video type. |
Type Definitions
| Matcher | Matcher function |