Crate fif

source · []
Expand description

This library consists of all of the things fif needs to run. It only exists as a library to separate code, and to make documentation and testing a bit easier. I don’t recommend using this as a library for your crate, as it may have breaking changes without incrementing the major version - it’s really only meant to be a place for fif’s internals to live.

You can view fif’s README to learn more.


File handling - scanning, detecting MIME types, and so on.

The Findings and ScanError structs, used for conveying whether a given file was able to be scanned, whether its MIME type could be inferred, and whether the file should be renamed.

Logic for handling the various output formats that fif can output to.

Backend-neutral Mime database abstraction.

Command line argument parsing logic and associated functions.

Various minor utilities.


A macro for creating an array of Writables without needing to pepper your code with into()s.

Does the same thing as writables, but adds a Newline to the end.


A Lazy holding an instance of mime_db::MimeDb. Initialised at program startup.

Type Definitions

On most architectures, this is a type alias for SmartString. However, on architectures unsupported by smartstring, this is simply an alias to std::string::String. A convenience alias for a LazyCompact layout SmartString.