enum DecoderError {
Show 19 variants
PnmMagicInvalid([u8; 2]),
UnparsableValue(ErrorDataSource, String, ParseIntError),
NonAsciiByteInHeader(u8),
NonAsciiLineInPamHeader,
NonAsciiSample,
NotNewlineAfterP7Magic(u8),
UnexpectedPnmHeaderEnd,
HeaderLineDuplicated(PnmHeaderLine),
HeaderLineUnknown(String),
HeaderLineMissing {
height: Option<u32>,
width: Option<u32>,
depth: Option<u32>,
maxval: Option<u32>,
},
InputTooShort,
UnexpectedByteInRaster(u8),
SampleOutOfBounds(u8),
MaxvalZero,
MaxvalTooBig(u32),
InvalidDepthOrMaxval {
tuple_type: ArbitraryTuplType,
depth: u32,
maxval: u32,
},
InvalidDepth {
tuple_type: ArbitraryTuplType,
depth: u32,
},
TupleTypeUnrecognised,
Overflow,
}
Expand description
All errors that can occur when attempting to parse a PNM
Variants§
PnmMagicInvalid([u8; 2])
PNM’s “P[123456]” signature wrong or missing
UnparsableValue(ErrorDataSource, String, ParseIntError)
Couldn’t parse the specified string as an integer from the specified source
NonAsciiByteInHeader(u8)
More than the exactly one allowed plane specified by the format
NonAsciiLineInPamHeader
The PAM header contained a non-ASCII byte
NonAsciiSample
A sample string contained a non-ASCII byte
NotNewlineAfterP7Magic(u8)
The byte after the P7 magic was not 0x0A NEWLINE
UnexpectedPnmHeaderEnd
The PNM header had too few lines
HeaderLineDuplicated(PnmHeaderLine)
The specified line was specified twice
HeaderLineUnknown(String)
The line with the specified ID was not understood
HeaderLineMissing
At least one of the required lines were missing from the header (are None
here)
Same names as PnmHeaderLine
InputTooShort
Not enough data was provided to the Decoder to decode the image
UnexpectedByteInRaster(u8)
Sample raster contained unexpected byte
SampleOutOfBounds(u8)
Specified sample was out of bounds (e.g. >1 in B&W)
MaxvalZero
The image’s maxval is zero
MaxvalTooBig(u32)
The image’s maxval exceeds 0xFFFF
InvalidDepthOrMaxval
The specified tuple type supports restricted depths and maxvals, those restrictions were not met
InvalidDepth
The specified tuple type supports restricted depths, those restrictions were not met
TupleTypeUnrecognised
The tuple type was not recognised by the parser
Overflow
Overflowed the specified value when parsing
Trait Implementations§
source§impl Clone for DecoderError
impl Clone for DecoderError
source§fn clone(&self) -> DecoderError
fn clone(&self) -> DecoderError
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for DecoderError
impl Debug for DecoderError
source§impl Display for DecoderError
impl Display for DecoderError
source§impl Error for DecoderError
impl Error for DecoderError
source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · source§fn description(&self) -> &str
fn description(&self) -> &str
source§impl From<DecoderError> for ImageError
impl From<DecoderError> for ImageError
Note: should pnm
be extracted into a separate crate,
this will need to be hidden until that crate hits version 1.0
.
source§fn from(e: DecoderError) -> ImageError
fn from(e: DecoderError) -> ImageError
Auto Trait Implementations§
impl Freeze for DecoderError
impl RefUnwindSafe for DecoderError
impl Send for DecoderError
impl Sync for DecoderError
impl Unpin for DecoderError
impl UnwindSafe for DecoderError
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
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more