Skip to main content

pactole_core/
lib.rs

1//! Pure domain models, validation and reporting for Pactole journals.
2//!
3//! This crate performs no I/O and has no dependency on the parser or storage
4//! layers. A typical consumer builds a [`Journal`], validates it with
5//! [`validate_journal`] or [`validate_journal_all`], then produces a register
6//! report with [`register`]. Monetary values use [`rust_decimal::Decimal`].
7
8mod errors;
9mod models;
10mod register;
11mod traits;
12mod validation;
13
14pub use crate::errors::{ModelError, ValidationError};
15pub use crate::models::{
16    AccountName, Amount, Balance, Close, Commodity, CommodityName, Entry, Journal, Metadata,
17    MetadataKey, Open, Payee, Posting, Transaction, TransactionStatus,
18};
19pub use crate::register::{RegisterEntry, RegisterFilter, register};
20pub use crate::traits::ReadableStorage;
21pub use crate::validation::{
22    ValidationIssue, ValidationReport, validate_journal, validate_journal_all,
23};