llpr 0.1.2

low-level PDF reader
Documentation
use thiserror::Error;

use crate::pdf_types::*;

#[derive(Error, Debug)]
pub enum PdfError {
    #[error("decompression error: {0:?}")]
    DecompressionError(String),

    #[error("internal error: {0:?}")]
    InternalError(&'static str),

    #[error("invalid pdf file: {0:?}")]
    InvalidPdf(&'static str),

    #[error("pdf keyword expected: {0:?}")]
    KeywordExpected(PdfKeyword),

    #[error("reference not found")]
    InvalidReference,

    #[error("target does not match reference")]
    InvalidReferenceTarget,

    #[error("invalid page number")]
    InvalidPageNumber,

    #[error("unexpected end of file")]
    EndOfFile,

    #[error("I/O error")]
    IoError(#[from] std::io::Error),

    #[error("failed to parse int")]
    ParseIntError(#[from] std::num::ParseIntError),

    #[error("failed to parse float")]
    ParseFloatError(#[from] std::num::ParseFloatError),
}