1#![deny(clippy::all, clippy::nursery, missing_docs)]
2#![warn(clippy::pedantic)]
3#![allow(clippy::cast_possible_truncation, clippy::cast_lossless)]
4
5use std::io::{Read, Write};
15
16mod error;
17mod file;
18mod model;
19pub mod prefix;
20mod read;
21mod sign_version;
22mod write;
23
24pub use error::Error;
25pub use model::{Checksum, Header, Mime};
26pub use prefix::Prefix;
27pub use read::ReadablePbo;
28pub use sign_version::BISignVersion;
29pub use write::WritablePbo;
30
31trait WritePbo {
32 fn write_pbo<O: Write>(&self, output: &mut O) -> Result<(), Error>;
33}
34
35trait ReadPbo: Sized {
36 fn read_pbo<I: Read>(input: &mut I) -> Result<(Self, usize), crate::error::Error>;
37}