ux 0.0.1

Implement the following non standard integers: `u2`, `u3`, `u4, `u5`, `u6`, `u7`, `u9`, `u10`, `u11`, `u12`, `u13`, u14`, `u15`, `u17`, `u18`, `u19`, `u20`, `u21`, u22`, `u23`, `u24`, `u25`, `u26`, `u27`, `u28`, `u29`, `u30`, `u31`, `u33`, `u34`, `u35`, `u36`, `u37`, u38`, `u39`, `u40`, `u41`, `u42`, `u43`, `u44`, `u45`, u46`, `u47`, `u48`, `u49`, `u50`, `u51`, `u52`, `u53`, u54`, `u55`, `u56`, `u57`, `u58`, `u59`, `u60`, `u61`, u62`, `u63`, `i2`, `i3`, `i4, `i5`, `i6`, `i7`, `i9`, `i10`, `i11`, `i12`, `i13`, i14`, `i15`, `i17`, `i18`, `i19`, `i20`, `i21`, i22`, `i23`, `i24`, `i25`, `i26`, `i27`, `i28`, `i29`, `i30`, `i31`, `i33`, `i34`, `i35`, `i36`, `i37`, i38`, `i39`, `i40`, `i41`, `i42`, `i43`, `i44`, `i45`, i46`, `i47`, `i48`, `i49`, `i50`, `i51`, `i52`, `i53`, i54`, `i55`, `i56`, `i57`, `i58`, `i59`, `i60`, `i61`, i62`, `i63`

uX Build Status

Non standard integer types like u7, u9, u10, u63, i7, i9 etc

When non-standard-width integers is required in an applications, the norm is to use a larger container and make sure the value is within range after manipulation. uX aims to take care of this once and for all by:

  • Providing u2-u63 and i2-i63 types that should behave as similar as possible to the built in rust types
    • The methods of the defined types are the same as for the built in types (far from all is implemented at this point but fill out an issue or create a PR if something essential for you is missing)
    • Overflow will panic in debug and wrap in release.
  • When i128 and u128 is stabilized this crate will also support u65-u127 and i65-i127
  • All possible lossless conversions is possible by using From.
  • When TryFrom is stabilized fallible conversions will also be supported.


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.