pub mod validate;
mod version;
pub use validate::{ValidationError, Validator};
pub use version::PdfVersion;
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct Configuration {
validator: Validator,
version: PdfVersion,
}
impl Default for Configuration {
fn default() -> Self {
Self::new()
}
}
impl Configuration {
pub fn new_with(validator: Validator, version: PdfVersion) -> Option<Self> {
if validator.compatible_with_version(version) {
Some(Self { validator, version })
} else {
None
}
}
pub fn new_with_validator(validator: Validator) -> Self {
Self::new_with(validator, validator.recommended_version()).unwrap()
}
pub fn new_with_version(version: PdfVersion) -> Self {
Self::new_with(Validator::None, version).unwrap()
}
pub fn new() -> Self {
Self::new_with_validator(Validator::None)
}
pub fn validator(&self) -> Validator {
self.validator
}
pub fn version(&self) -> PdfVersion {
self.version
}
}
#[cfg(test)]
mod tests {
use crate::configure::{Configuration, PdfVersion, Validator};
#[test]
fn invalid_combination_1() {
assert_eq!(
Configuration::new_with(Validator::A1_B, PdfVersion::Pdf17),
None
);
}
}