Enum png::DecodingError
source · [−]pub enum DecodingError {
IoError(Error),
Format(FormatError),
Parameter(ParameterError),
LimitsExceeded,
}
Expand description
Any kind of error during PNG decoding.
This enumeration provides a very rough analysis on the origin of the failure. That is, each variant corresponds to one kind of actor causing the error. It should not be understood as a direct blame but can inform the search for a root cause or if such a search is required.
Variants
IoError(Error)
An error in IO of the underlying reader.
Format(FormatError)
The input image was not a valid PNG.
There isn’t a lot that can be done here, except if the program itself was responsible for creating this image then investigate the generator. This is internally implemented with a large Enum. If You are interested in accessing some of the more exact information on the variant then we can discuss in an issue.
Parameter(ParameterError)
An interface was used incorrectly.
This is used in cases where it’s expected that the programmer might trip up and stability could be affected. For example when:
- The decoder is polled for more animation frames despite being done (or not being animated in the first place).
- The output buffer does not have the required size.
As a rough guideline for introducing new variants parts of the requirements are dynamically derived from the (untrusted) input data while the other half is from the caller. In the above cases the number of frames respectively the size is determined by the file while the number of calls
If you’re an application you might want to signal that a bug report is appreciated.
LimitsExceeded
The image would have required exceeding the limits configured with the decoder.
Note that Your allocations, e.g. when reading into a pre-allocated buffer, is NOT considered part of the limits. Nevertheless, required intermediate buffers such as for singular lines is checked against the limit.
Note that this is a best-effort basis.
Trait Implementations
sourceimpl Debug for DecodingError
impl Debug for DecodingError
sourceimpl Display for DecodingError
impl Display for DecodingError
sourceimpl Error for DecodingError
impl Error for DecodingError
sourcefn cause(&self) -> Option<&(dyn Error + 'static)>
fn cause(&self) -> Option<&(dyn Error + 'static)>
replaced by Error::source, which can support downcasting
1.30.0 · sourcefn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
The lower-level source of this error, if any. Read more
sourcefn backtrace(&self) -> Option<&Backtrace>
fn backtrace(&self) -> Option<&Backtrace>
backtrace
)Returns a stack backtrace, if available, of where this error occurred. Read more
1.0.0 · sourcefn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
sourceimpl From<DecodingError> for Error
impl From<DecodingError> for Error
sourcefn from(err: DecodingError) -> Error
fn from(err: DecodingError) -> Error
Converts to this type from the input type.
sourceimpl From<Error> for DecodingError
impl From<Error> for DecodingError
sourcefn from(err: Error) -> DecodingError
fn from(err: Error) -> DecodingError
Converts to this type from the input type.
Auto Trait Implementations
impl !RefUnwindSafe for DecodingError
impl Send for DecodingError
impl Sync for DecodingError
impl Unpin for DecodingError
impl !UnwindSafe for DecodingError
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more