Skip to content

Commit 872777f

Browse files
Merge pull request #26 from theseus-rs/update-example-documentation
docs: update example documentation
2 parents bb1f5ff + cfa3afb commit 872777f

File tree

5 files changed

+99
-25
lines changed

5 files changed

+99
-25
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
3535
- update apache name format
3636

3737
### Other
38-
- add supported file types to file_type crate reamde
38+
- add supported file types to file_type crate readme
3939

4040
## `file_type` - [0.0.3](https://github.com/theseus-rs/file-type/compare/file_type-v0.0.2...file_type-v0.0.3) - 2025-01-03
4141

README.md

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,37 @@ use file_type::FileType;
2323

2424
let file_type = FileType::from_bytes(b"\xCA\xFE\xBA\xBE");
2525
assert_eq!(file_type.name(), "Java Class File");
26-
assert_eq!(file_type.media_type(), Vec::<String>::new());
26+
assert_eq!(file_type.media_types(), Vec::<String>::new());
2727
assert_eq!(file_type.extensions(), vec!["class"]);
2828
```
2929

30-
Detect text from bytes:
30+
Detect the file type from a file:
3131
```rust
3232
use file_type::FileType;
33+
use std::path::Path;
3334

34-
let file_type = FileType::from_bytes(b"hello, world\n");
35-
assert_eq!(file_type.name(), "Text");
36-
assert_eq!(file_type.media_types(), vec!["text/plain"]);
37-
assert_eq!(file_type.extensions(), Vec::<String>::new());
35+
#[tokio::main]
36+
async fn main() {
37+
let file_path = Path::new("image.png");
38+
let file_type = FileType::try_from_file(file_path).await.expect("file type not found");
39+
assert_eq!(file_type.id(), "fmt/11");
40+
assert_eq!(file_type.name(), "Portable Network Graphics");
41+
assert_eq!(file_type.extensions(), vec!["png"]);
42+
assert_eq!(file_type.media_types(), vec!["image/png"]);
43+
}
44+
```
45+
46+
Detect the file type from a file synchronously:
47+
```rust
48+
use file_type::FileType;
49+
use std::path::Path;
50+
51+
let file_path = Path::new("image.png");
52+
let file_type = FileType::try_from_file_sync(file_path).expect("file type not found");
53+
assert_eq!(file_type.id(), "fmt/11");
54+
assert_eq!(file_type.name(), "Portable Network Graphics");
55+
assert_eq!(file_type.extensions(), vec!["png"]);
56+
assert_eq!(file_type.media_types(), vec!["image/png"]);
3857
```
3958

4059
## Supported File Types

file_type/README.md

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
## Getting Started
1212

13-
A file type. The file type is determined by examining the file or bytes against known file
13+
File types are determined by examining a file or bytes against known file
1414
signatures and file extensions.
1515

1616
Signature, extension and media type data are provided by:
@@ -25,21 +25,38 @@ Detect a Java class file from bytes:
2525
use file_type::FileType;
2626

2727
let file_type = FileType::from_bytes(b"\xCA\xFE\xBA\xBE");
28-
assert_eq!(file_type.id(), "x-fmt/415");
2928
assert_eq!(file_type.name(), "Java Class File");
3029
assert_eq!(file_type.media_types(), Vec::<String>::new());
3130
assert_eq!(file_type.extensions(), vec!["class"]);
3231
```
3332

34-
Detect text from bytes:
33+
Detect the file type from a file:
3534
```rust
3635
use file_type::FileType;
36+
use std::path::Path;
3737

38-
let file_type = FileType::from_bytes(b"hello, world\n");
39-
assert_eq!(file_type.id(), "default/2");
40-
assert_eq!(file_type.name(), "Text");
41-
assert_eq!(file_type.media_types(), vec!["text/plain"]);
42-
assert_eq!(file_type.extensions(), Vec::<String>::new());
38+
#[tokio::main]
39+
async fn main() {
40+
let file_path = Path::new("image.png");
41+
let file_type = FileType::try_from_file(file_path).await.expect("file type not found");
42+
assert_eq!(file_type.id(), "fmt/11");
43+
assert_eq!(file_type.name(), "Portable Network Graphics");
44+
assert_eq!(file_type.extensions(), vec!["png"]);
45+
assert_eq!(file_type.media_types(), vec!["image/png"]);
46+
}
47+
```
48+
49+
Detect the file type from a file synchronously:
50+
```rust
51+
use file_type::FileType;
52+
use std::path::Path;
53+
54+
let file_path = Path::new("image.png");
55+
let file_type = FileType::try_from_file_sync(file_path).expect("file type not found");
56+
assert_eq!(file_type.id(), "fmt/11");
57+
assert_eq!(file_type.name(), "Portable Network Graphics");
58+
assert_eq!(file_type.extensions(), vec!["png"]);
59+
assert_eq!(file_type.media_types(), vec!["image/png"]);
4360
```
4461

4562
## Supported File Types

file_type/src/file_type.rs

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,33 @@ use tokio::runtime::Builder;
2424
/// assert_eq!(file_type.extensions(), vec!["class"]);
2525
/// ```
2626
///
27-
/// Detect text from bytes:
27+
/// Detect the file type from a file:
28+
/// ```no_run
29+
/// use file_type::FileType;
30+
/// use std::path::Path;
31+
///
32+
/// #[tokio::main]
33+
/// async fn main() {
34+
/// let file_path = Path::new("image.png");
35+
/// let file_type = FileType::try_from_file(file_path).await.expect("file type not found");
36+
/// assert_eq!(file_type.id(), "fmt/11");
37+
/// assert_eq!(file_type.name(), "Portable Network Graphics");
38+
/// assert_eq!(file_type.extensions(), vec!["png"]);
39+
/// assert_eq!(file_type.media_types(), vec!["image/png"]);
40+
/// }
2841
/// ```
42+
///
43+
/// Detect the file type from a file synchronously:
44+
/// ```no_run
2945
/// use file_type::FileType;
46+
/// use std::path::Path;
3047
///
31-
/// let file_type = FileType::from_bytes(b"hello, world\n");
32-
/// assert_eq!(file_type.name(), "Text");
33-
/// assert_eq!(file_type.media_types(), vec!["text/plain"]);
34-
/// assert_eq!(file_type.extensions(), Vec::<String>::new());
48+
/// let file_path = Path::new("image.png");
49+
/// let file_type = FileType::try_from_file_sync(file_path).expect("file type not found");
50+
/// assert_eq!(file_type.id(), "fmt/11");
51+
/// assert_eq!(file_type.name(), "Portable Network Graphics");
52+
/// assert_eq!(file_type.extensions(), vec!["png"]);
53+
/// assert_eq!(file_type.media_types(), vec!["image/png"]);
3554
/// ```
3655
#[derive(Clone, Debug)]
3756
pub struct FileType {

file_type/src/lib.rs

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,33 @@
2727
//! assert_eq!(file_type.extensions(), vec!["class"]);
2828
//! ```
2929
//!
30-
//! Detect text from bytes:
30+
//! Detect the file type from a file:
31+
//! ```no_run
32+
//! use file_type::FileType;
33+
//! use std::path::Path;
34+
//!
35+
//! #[tokio::main]
36+
//! async fn main() {
37+
//! let file_path = Path::new("image.png");
38+
//! let file_type = FileType::try_from_file(file_path).await.expect("file type not found");
39+
//! assert_eq!(file_type.id(), "fmt/11");
40+
//! assert_eq!(file_type.name(), "Portable Network Graphics");
41+
//! assert_eq!(file_type.extensions(), vec!["png"]);
42+
//! assert_eq!(file_type.media_types(), vec!["image/png"]);
43+
//! }
3144
//! ```
45+
//!
46+
//! Detect the file type from a file synchronously:
47+
//! ```no_run
3248
//! use file_type::FileType;
49+
//! use std::path::Path;
3350
//!
34-
//! let file_type = FileType::from_bytes(b"hello, world\n");
35-
//! assert_eq!(file_type.name(), "Text");
36-
//! assert_eq!(file_type.media_types(), vec!["text/plain"]);
37-
//! assert_eq!(file_type.extensions(), Vec::<String>::new());
51+
//! let file_path = Path::new("image.png");
52+
//! let file_type = FileType::try_from_file_sync(file_path).expect("file type not found");
53+
//! assert_eq!(file_type.id(), "fmt/11");
54+
//! assert_eq!(file_type.name(), "Portable Network Graphics");
55+
//! assert_eq!(file_type.extensions(), vec!["png"]);
56+
//! assert_eq!(file_type.media_types(), vec!["image/png"]);
3857
//! ```
3958
//!
4059
//! ## Safety

0 commit comments

Comments
 (0)