#ibm #mainframe #cobol #parser

overpunch

support for signed overpunch numbers

3 releases (breaking)

0.3.0 Nov 3, 2024
0.2.0 Oct 16, 2024
0.1.0 Oct 15, 2024

#382 in Finance

Download history 13/week @ 2024-10-25 346/week @ 2024-11-01 74/week @ 2024-11-08 52/week @ 2024-11-15 36/week @ 2024-11-22 34/week @ 2024-11-29 75/week @ 2024-12-06 59/week @ 2024-12-13 31/week @ 2024-12-20 46/week @ 2024-12-27 72/week @ 2025-01-03 102/week @ 2025-01-10 48/week @ 2025-01-17 31/week @ 2025-01-24 58/week @ 2025-01-31 53/week @ 2025-02-07

210 downloads per month

MIT license

10KB
142 lines

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{");

Dependencies

~0.9–1.5MB
~32K SLoC