1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
//! Error types for Omniparse
//!
//! This module defines the error types used throughout the Omniparse library.
//! All errors implement the standard `Error` trait and provide detailed context
//! about what went wrong during extraction operations.
//!
//! # Examples
//!
//! ```
//! use omniparse::{extract_from_path, Error};
//!
//! match extract_from_path("unknown.xyz") {
//! Ok(result) => println!("Success: {}", result.mime_type),
//! Err(Error::UnsupportedFormat(mime)) => {
//! println!("Format {} is not supported", mime);
//! }
//! Err(Error::Io(e)) => {
//! println!("IO error: {}", e);
//! }
//! Err(e) => println!("Other error: {}", e),
//! }
//! ```
use Error;
use ExtractionResult;
/// Main error type for Omniparse operations
///
/// This enum represents all possible errors that can occur during file type detection
/// and content extraction. Each variant provides specific context about the failure.
///
/// # Examples
///
/// ```
/// use omniparse::{extract_from_path, Error};
///
/// let result = extract_from_path("nonexistent.pdf");
/// assert!(matches!(result, Err(Error::Io(_))));
/// ```
/// Result type alias for Omniparse operations
///
/// This is a convenience type alias that uses `omniparse::Error` as the error type.
/// Most functions in the library return this type.
///
/// # Examples
///
/// ```
/// use omniparse::Result;
///
/// fn my_extraction_function() -> Result<String> {
/// let result = omniparse::extract_from_path("file.txt")?;
/// Ok(format!("Extracted from {}", result.mime_type))
/// }
/// ```
pub type Result<T> = Result;