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.

Signature, extension and media type data are provided by: The National Archives PRONOM Apache HTTPD Linguist

§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§