Skip to content

Repository files navigation

time-value

Type-safe time-value-of-money calculations in Rust.

A Cargo workspace whose published crate is time_value. Two unpublished crates sit beside it: time-value-cli, which installs the time-value command, and crates/bundle-check, which exists so the knowledge bundle's invariants are asserted rather than eyeballed.

The library comes first and the surfaces follow it — a feature is modelled and built in time_value, then exposed in the CLI, then in the MCP server. A surface validates nothing of its own.

Nothing here is published. The 0.1.00.8.0 series on crates.io is a separate, immutable history that this line does not continue.

The Knowledge Bundle

knowledge/ is an Open Knowledge Format bundle and this project's authoritative documentation: what each formula is, where its definition came from, which convention was followed where sources disagree, and what has deliberately been left open. There are no ADRs.

Concepts come before code. A formula is modelled first, and the implementation follows the model — so the bundle is worth reading before the source, not after.

Each claim says where it came from. A footnote means a source supports it; otherwise it is labelled Decided or Derived, so a reader can tell a choice from a consequence. Most of it is ours: the sources give formulas and little else.

Development

nix develop           # toolchain, bacon, nextest, cargo-deny, prettier, hooks
bacon                 # continuous clippy

Everything CI runs, runs the same way locally — CI runs this exact script:

nix develop -c ./scripts/check.sh            # everything
nix develop -c ./scripts/check.sh clippy     # one check, by name

It reports every check rather than stopping at the first failure, and refuses to run against a stable rustfmt, which would silently ignore most of rustfmt.toml and pass anyway.

The knowledge bundle is checked by those tests too — its structure and links by okf-graph, and its frontmatter by the stricter rules this repo holds itself to.

Repo settings

This repo's own GitHub rulesets are version-controlled in .github/rulesets/ and reconciled by scripts/settings.sh --check / --apply.

License

Licensed under either of Apache-2.0 or MIT at your option.

About

Type-safe time-value-of-money calculations in Rust

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages