Crate file_type

Source
Expand description

§file_type FileType

Code Coverage Benchmarks License Semantic Versioning

§Getting Started

A file type. The file type is determined by examining the file or bytes against known file signatures and file extensions.

Additional information on PRONOM file types can be found at The National Archives

§Example

Detect a Java class file from bytes:

use file_type::FileType;

let file_type = FileType::from_bytes(b"\xCA\xFE\xBA\xBE");
assert_eq!(file_type.name(), "Java Class File");
assert_eq!(file_type.media_types(), Vec::<String>::new());
assert_eq!(file_type.extensions(), vec!["class"]);

Detect text from bytes:

use file_type::FileType;

let file_type = FileType::from_bytes(b"hello, world\n");
assert_eq!(file_type.name(), "Text");
assert_eq!(file_type.media_types(), vec!["text/plain"]);
assert_eq!(file_type.extensions(), Vec::<String>::new());

§Safety

This crate uses #![forbid(unsafe_code)] to ensure everything is implemented in 100% safe Rust.

Modules§

Structs§

  • A file type. The file type is determined by examining the file or bytes against known file signatures and file extensions.

Enums§

  • Errors that can occur when determining the file type

Type Aliases§