overpunch

Crates.iooverpunch
lib.rsoverpunch
version0.3.0
sourcesrc
created_at2024-10-15 23:38:00.480341
updated_at2024-11-03 04:41:41.95462
descriptionsupport for signed overpunch numbers
homepagehttps://github.com/capitalrx/overpunch
repositoryhttps://github.com/capitalrx/overpunch
max_upload_size
id1410849
size22,330
Ryan Kelly (f0rk)

documentation

README

Overpunch   Build Status Latest Version

A signed overpunch support library suitable for interacting with Decimal values.

Installing

$ cargo add overpunch

Alternatively, you can edit your Cargo.toml directly and run cargo update:

[dependencies]
overpunch = "0.3.0"

Usage

To parse signed overpunch numbers:

use overpunch::{convert_from_signed_format, extract};
use rust_decimal::Decimal;

let number = convert_from_signed_format("2258{", "s9(7)v99").unwrap();
assert_eq!(number, Decimal::from_str_exact("225.8").unwrap());

let number = extract("2258{", 2).unwrap();
assert_eq!(number, Decimal::from_str_exact("225.8").unwrap());

To format values to signed overpunch:

use overpunch::{convert_to_signed_format, format};
use rust_decimal::Decimal;

let formatted = convert_to_signed_format(Decimal::from_str_exact("225.8").unwrap(), "s9(7)v99").unwrap();
assert_eq!(formatted, "2258{");

let formatted = format(Decimal::from_str_exact("225.8").unwrap(), 2).unwrap();
assert_eq!(formatted, "2258{");
Commit count: 42

cargo fmt