Enum lofty::ParsingMode
source · #[non_exhaustive]pub enum ParsingMode {
Strict,
BestAttempt,
Relaxed,
}
Expand description
The parsing strictness mode
This can be set with Probe::options
.
§Examples
use lofty::{ParseOptions, ParsingMode, Probe};
// We only want to read spec-compliant inputs
let parsing_options = ParseOptions::new().parsing_mode(ParsingMode::Strict);
let tagged_file = Probe::open("foo.mp3")?.options(parsing_options).read()?;
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Strict
Will eagerly error on invalid input
This mode will eagerly error on any non spec-compliant input.
§Examples of behavior
- Unable to decode text - The parser will error and the entire input is discarded
- Unable to determine the sample rate - The parser will error and the entire input is discarded
BestAttempt
Default mode, less eager to error on recoverably malformed input
This mode will attempt to fill in any holes where possible in otherwise valid, spec-compliant input.
NOTE: A readable input does not necessarily make it writeable.
§Examples of behavior
- Unable to decode text - If valid otherwise, the field will be replaced by an empty string and the parser moves on
- Unable to determine the sample rate - The sample rate will be 0
Relaxed
Least eager to error, may produce invalid/partial output
This mode will discard any invalid fields, and ignore the majority of non-fatal errors.
If the input is malformed, the resulting tags may be incomplete, and the properties zeroed.
§Examples of behavior
- Unable to decode text - The entire item is discarded and the parser moves on
- Unable to determine the sample rate - The sample rate will be 0
Trait Implementations§
source§impl Clone for ParsingMode
impl Clone for ParsingMode
source§fn clone(&self) -> ParsingMode
fn clone(&self) -> ParsingMode
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for ParsingMode
impl Debug for ParsingMode
source§impl Default for ParsingMode
impl Default for ParsingMode
source§fn default() -> ParsingMode
fn default() -> ParsingMode
Returns the “default value” for a type. Read more
source§impl Ord for ParsingMode
impl Ord for ParsingMode
source§fn cmp(&self, other: &ParsingMode) -> Ordering
fn cmp(&self, other: &ParsingMode) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl PartialEq for ParsingMode
impl PartialEq for ParsingMode
source§fn eq(&self, other: &ParsingMode) -> bool
fn eq(&self, other: &ParsingMode) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for ParsingMode
impl PartialOrd for ParsingMode
source§fn partial_cmp(&self, other: &ParsingMode) -> Option<Ordering>
fn partial_cmp(&self, other: &ParsingMode) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moreimpl Copy for ParsingMode
impl Eq for ParsingMode
impl StructuralEq for ParsingMode
impl StructuralPartialEq for ParsingMode
Auto Trait Implementations§
impl RefUnwindSafe for ParsingMode
impl Send for ParsingMode
impl Sync for ParsingMode
impl Unpin for ParsingMode
impl UnwindSafe for ParsingMode
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more