Struct infer::Infer [−][src]
pub struct Infer { /* fields omitted */ }
Expand description
Infer allows to use a custom set of Matcher
s for infering a MIME type.
Most operations can be done by using the top level functions, but when custom matchers
are needed every call has to go through the Infer
struct to be able
to see the custom matchers.
Implementations
impl Infer
[src]
impl Infer
[src]pub fn get(&self, buf: &[u8]) -> Option<Type>
[src]
pub fn get(&self, buf: &[u8]) -> Option<Type>
[src]Returns the file type of the buffer.
Examples
let info = infer::Infer::new(); let buf = [0xFF, 0xD8, 0xFF, 0xAA]; let kind = info.get(&buf).expect("file type is known"); assert_eq!(kind.mime_type(), "image/jpeg"); assert_eq!(kind.extension(), "jpg");
pub fn is_supported(&self, extension: &str) -> bool
[src]
pub fn is_supported(&self, extension: &str) -> bool
[src]pub fn is_mime_supported(&self, mime_type: &str) -> bool
[src]
pub fn is_mime_supported(&self, mime_type: &str) -> bool
[src]pub fn is_custom(&self, buf: &[u8]) -> bool
[src]
pub fn is_custom(&self, buf: &[u8]) -> bool
[src]Determines whether a buffer is one of the custom types added.
Examples
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]; assert!(info.is_custom(&buf));
pub fn add(
&mut self,
mime_type: &'static str,
extension: &'static str,
m: Matcher
)
[src]
pub fn add(
&mut self,
mime_type: &'static str,
extension: &'static str,
m: Matcher
)
[src]Adds a custom matcher.
Custom matchers are matched in order of addition and before the default set of matchers.
Examples
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).expect("file type is known"); assert_eq!(kind.mime_type(), "custom/foo"); assert_eq!(kind.extension(), "foo");