#decimal #arithmetic #system #decimal-number #numbers #instance #base6

seximal

A seximal (base6) equivalent of Rust's type system

6 releases

0.1.5 Oct 18, 2021
0.1.4 Oct 18, 2021

#2061 in Algorithms

MIT/Apache

230KB
5.5K SLoC

Seximal

Seximal is a collection of structs that represent the seximal (base6) equivalents of all the number types in Rust. This project was inspired by a better way to count by jan Misali and his website on the subject.

How to use

Every type in this crate supports arithmetic operations with itself or the equivalent decimal type using the normal arithmetic operators. Every type can also be compared with itself using std::cmp.

Initializing

You can use the new function in each struct to create a new instance from a decimal number. Alternatively a new instance can be created from a string representation of a seximal number with the from function. Becuse the value is stored internally as a decimal number type, new is always the quicker option. However, from should be used when creating a new instance from user input, for example, as it performs the conversion from seximal to decimal for you.

Getting the value

The value function in each struct gives you the value of the number in decimal form. Each struct implements fmt::Display which returns a string representation of the value in seximal form.

Conversion

All the integer types have functions for converting between them. You can even convert between signed and unsigned types. The two floating point types support conversions between each other. Be careful, however, as these functions perform just like the as keyword, which means that overflow will result in a panic.

Dependencies

~245KB