Struct TypesBuilder

struct TypesBuilder { ... }

TypesBuilder builds a type matcher from a set of file type definitions and a set of file type selections.

Implementations

impl TypesBuilder

fn new() -> TypesBuilder

Create a new builder for a file type matcher.

The builder contains no type definitions to start with. A set of default type definitions can be added with add_defaults, and additional type definitions can be added with select and negate.

fn build(self: &Self) -> Result<Types, Error>

Build the current set of file type definitions and selections into a file type matcher.

fn definitions(self: &Self) -> Vec<FileTypeDef>

Return the set of current file type definitions.

Definitions and globs are sorted.

fn select(self: &mut Self, name: &str) -> &mut TypesBuilder

Select the file type given by name.

If name is all, then all file types currently defined are selected.

fn negate(self: &mut Self, name: &str) -> &mut TypesBuilder

Ignore the file type given by name.

If name is all, then all file types currently defined are negated.

fn clear(self: &mut Self, name: &str) -> &mut TypesBuilder

Clear any file type definitions for the type name given.

fn add(self: &mut Self, name: &str, glob: &str) -> Result<(), Error>

Add a new file type definition. name can be arbitrary and pat should be a glob recognizing file paths belonging to the name type.

If name is all or otherwise contains any character that is not a Unicode letter or number, then an error is returned.

fn add_def(self: &mut Self, def: &str) -> Result<(), Error>

Add a new file type definition specified in string form. There are two valid formats:

  1. {name}:{glob}. This defines a 'root' definition that associates the given name with the given glob.
  2. `{name}:include:{comma-separated list of already defined names}. This defines an 'include' definition that associates the given name with the definitions of the given existing types. Names may not include any characters that are not Unicode letters or numbers.
fn add_defaults(self: &mut Self) -> &mut TypesBuilder

Add a set of default file type definitions.

impl Freeze for TypesBuilder

impl RefUnwindSafe for TypesBuilder

impl Send for TypesBuilder

impl Sync for TypesBuilder

impl Unpin for TypesBuilder

impl UnwindSafe for TypesBuilder

impl<T> Any for TypesBuilder

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for TypesBuilder

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for TypesBuilder

fn borrow_mut(self: &mut Self) -> &mut T

impl<T> From for TypesBuilder

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> Pointable for TypesBuilder

unsafe fn init(init: <T as Pointable>::Init) -> usize
unsafe fn deref<'a>(ptr: usize) -> &'a T
unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
unsafe fn drop(ptr: usize)

impl<T, U> Into for TypesBuilder

fn into(self: Self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom for TypesBuilder

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

impl<T, U> TryInto for TypesBuilder

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>