#tor #safe-wrapper #arti #numeric #range #integer #type

tor-units

Provides macros for types which are constrained within a range, ensuring invalid values are unrepresentable

26 releases (14 breaking)

0.24.0 Oct 31, 2024
0.22.0 Sep 3, 2024
0.20.0 Jun 27, 2024
0.6.5 Mar 4, 2024
0.0.0 Jun 24, 2021

#1074 in Rust patterns

Download history 1368/week @ 2024-07-28 1478/week @ 2024-08-04 1087/week @ 2024-08-11 1537/week @ 2024-08-18 1419/week @ 2024-08-25 1846/week @ 2024-09-01 1378/week @ 2024-09-08 1273/week @ 2024-09-15 1649/week @ 2024-09-22 1489/week @ 2024-09-29 958/week @ 2024-10-06 931/week @ 2024-10-13 1276/week @ 2024-10-20 1381/week @ 2024-10-27 2005/week @ 2024-11-03 1469/week @ 2024-11-10

6,190 downloads per month
Used in 50 crates (8 directly)

MIT/Apache

88KB
1.5K SLoC

tor-units

Safe wrappers for primitive numeric types.

Overview

This crate is part of Arti, a project to implement Tor in Rust. It provides safe wrappers for primitive numeric wrappers used in other parts of Arti. In particular, it provides:

  • a bounded i32 with both checked and clamping constructors,
  • an integer milliseconds wrapper with conversion to Duration
  • an integer seconds wrapper with conversion to Duration
  • a percentage wrapper, to prevent accidental failure to divide by 100.
  • a SendMeVersion which can be compared only.

Compile-time features

  • memquota-memcost -- implement tor_memquota::HasMemoryCost for many types. (Does not actually force compiling in memory quota tracking; that's memquota in tor-memquota and higher-level crates.)

  • full -- Enable all features above.

License: MIT OR Apache-2.0


lib.rs:

Dependencies

~0.3–9.5MB
~98K SLoC