pub mod extract;
mod header;
mod reader;
mod writer;
pub use header::*;
pub use reader::*;
pub use writer::*;
use thiserror::Error;
#[derive(Error, Debug)]
pub enum WARCError {
#[error("unknown format")]
UnknownFormat,
#[error("malformed header (at offset {offset})")]
MalformedHeader {
offset: u64,
#[source]
source: Option<Box<dyn std::error::Error + Send + Sync>>,
},
#[error("wrong block length (at record ID {record_id}")]
WrongBlockLength {
record_id: String,
},
#[error("invalid field value (with name {name}, at record ID {record_id})")]
InvalidFieldValue {
name: String,
record_id: String,
#[source]
source: Option<Box<dyn std::error::Error + Send + Sync>>,
},
#[error("malformed footer (at offset {offset})")]
MalformedFooter {
offset: u64,
},
#[error(transparent)]
Io(#[from] std::io::Error),
}