#math #native #arithmetic #decimal-arithmetic


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

6 releases

0.1.5 Oct 18, 2021
0.1.4 Oct 18, 2021

#2130 in Algorithms

22 downloads per month


5.5K SLoC


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.


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.


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.