No description
Find a file
Marcel Enguehard a66e13d5db Bound LoanOffer inputs so the arithmetic stays in range
An offer with no upper bound on capital, rate or duration can be constructed
and then overflow downstream. Capping all three at construction turns those
overflows into a typed error at the boundary instead of a panic in the middle
of a computation.

The bounds are structural sanity limits chosen to leave several orders of
magnitude of headroom, not domain figures. In particular MAX_ANNUAL_NOMINAL_RATE
is not the taux d'usure, which applies to the TAEG, is published quarterly by
the Banque de France, and belongs in a separate business rule with its own
source and date.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-23 15:37:10 +02:00
.claude/commands Add /teach-me command encoding the feature workflow 2026-08-03 19:27:21 +02:00
crates Bound LoanOffer inputs so the arithmetic stays in range 2026-08-23 15:37:10 +02:00
scripts Add reference amortisation generator for known-answer tests 2026-08-18 18:07:23 +02:00
.gitignore Add reference amortisation generator for known-answer tests 2026-08-18 18:07:23 +02:00
Cargo.lock Add LoanOffer with validating constructor 2026-07-30 15:09:49 +02:00
Cargo.toml Set up cargo workspace backbone 2026-07-29 20:30:55 +02:00
CLAUDE.md Set up cargo workspace backbone 2026-07-29 20:30:55 +02:00
rust-toolchain.toml Set up cargo workspace backbone 2026-07-29 20:30:55 +02:00