1pub mod asset;
11pub mod book;
12pub mod isbn;
13pub mod presets;
14pub mod project;
15pub mod table;
16pub mod text;
17
18pub use asset::Asset;
19pub use book::*;
20pub use project::{Meta, Project, ProjectError};
21pub use table::{ColumnAlign, PlacedCell, Table, TableCell, TableColumn, TableLayout};
22
23pub const FORMAT_VERSION: u32 = 2;
27
28#[cfg(test)]
29mod tests {
30 use super::*;
31 use serde::Serialize;
32 use serde::de::DeserializeOwned;
33 use std::fmt::Debug;
34
35 #[test]
40 fn model_types_are_plain_data() {
41 fn plain<T: Serialize + DeserializeOwned + Clone + PartialEq + Debug>() {}
42 plain::<Book>();
43 plain::<Lang>();
44 plain::<Metadata>();
45 plain::<Series>();
46 plain::<Imprint>();
47 plain::<Credit>();
48 plain::<SectionKind>();
49 plain::<Section>();
50 plain::<Numbering>();
51 plain::<Epigraph>();
52 plain::<Block>();
53 plain::<Inline>();
54 plain::<Table>();
55 plain::<TableColumn>();
56 plain::<TableCell>();
57 plain::<ColumnAlign>();
58 plain::<StyleSettings>();
59 plain::<BlockRef>();
60 plain::<presets::TrimSize>();
61 plain::<presets::Retailer>();
62 plain::<presets::MinMargins>();
63 plain::<Meta>();
64 }
65}