Expand description
§use-invoice
Invoice primitives for RustUse finance crates.
use-invoice provides invoice numbers, statuses, lines, due dates, subtotal, total, and balance-due values without implementing a tax engine or billing platform.
§Example
use use_amount::Amount;
use use_currency::CurrencyCode;
use use_invoice::{Invoice, InvoiceLine, InvoiceNumber};
use use_money::Money;
let usd = CurrencyCode::new("USD")?;
let invoice = Invoice::from_lines(
InvoiceNumber::new("inv-1001")?,
vec![InvoiceLine::new(
"consulting",
Money::new(Amount::from_minor_units(25_000, 2)?, usd),
)?],
)?;
assert_eq!(invoice.total().amount().amount().minor_units(), 25_000);§Scope
Use this crate for general invoice vocabulary and simple same-currency totals. It does not calculate taxes, connect to billing systems, send invoices, process payments, or implement country-specific rules.
§License
Licensed under either MIT or Apache-2.0.
Modules§
- prelude
- Common invoice primitives.
Structs§
- Balance
Due - Invoice balance due.
- DueDate
- A due date in
YYYY-MM-DDshape. - Invoice
- A general invoice with same-currency line totals.
- Invoice
Line - A single invoice line.
- Invoice
Number - A non-empty invoice number.
- Subtotal
- Invoice subtotal.
- Total
- Invoice total.
Enums§
- Invoice
Error - Errors returned by invoice primitives.
- Invoice
Status - Invoice lifecycle status.