Struct infer::Infer[][src]

pub struct Infer { /* fields omitted */ }
Expand description

Infer allows to use a custom set of Matchers 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]

pub const fn new() -> Infer[src]

Initialize a new instance of the infer struct.

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 get_from_path<P: AsRef<Path>>(&self, path: P) -> Result<Option<Type>>[src]

Returns the file type of the file given a path.

Examples

See get_from_path.

pub fn is(&self, buf: &[u8], extension: &str) -> bool[src]

Determines whether a buffer is of given extension.

Examples

See is.

pub fn is_mime(&self, buf: &[u8], mime_type: &str) -> bool[src]

Determines whether a buffer is of given mime type.

Examples

See is_mime.

pub fn is_supported(&self, extension: &str) -> bool[src]

Returns whether an extension is supported.

Examples

See is_supported.

pub fn is_mime_supported(&self, mime_type: &str) -> bool[src]

Returns whether a mime type is supported.

Examples

See is_mime_supported.

pub fn is_app(&self, buf: &[u8]) -> bool[src]

Determines whether a buffer is an application type.

Examples

See is_app.

pub fn is_archive(&self, buf: &[u8]) -> bool[src]

Determines whether a buffer is an archive type.

Examples

See is_archive.

pub fn is_audio(&self, buf: &[u8]) -> bool[src]

Determines whether a buffer is an audio type.

Examples

See is_audio.

pub fn is_book(&self, buf: &[u8]) -> bool[src]

Determines whether a buffer is a book type.

Examples

See is_book.

pub fn is_document(&self, buf: &[u8]) -> bool[src]

Determines whether a buffer is a document type.

Examples

See is_document.

pub fn is_font(&self, buf: &[u8]) -> bool[src]

Determines whether a buffer is a font type.

Examples

See is_font.

pub fn is_image(&self, buf: &[u8]) -> bool[src]

Determines whether a buffer is an image type.

Examples

See is_image.

pub fn is_video(&self, buf: &[u8]) -> bool[src]

Determines whether a buffer is a video type.

Examples

See is_video.

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]

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");

Trait Implementations

impl Default for Infer[src]

fn default() -> Self[src]

Returns the “default value” for a type. Read more

Auto Trait Implementations

impl RefUnwindSafe for Infer

impl Send for Infer

impl Sync for Infer

impl Unpin for Infer

impl UnwindSafe for Infer

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.