Skip to content

martinmroz/12bit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

twelve_bit

A Rust library for representing 12-bit unsigned values. This is primarily useful for implementing Chip-8 assemblers and interpreters safely. The type implements bulk of the standard Rust literal semantics and operators, and much of the documentation is adapted from the u16 intrinsic type.

Coverage Status

Usage

Add the following to your Cargo.toml:

[dependencies]
twelve_bit = "0.1"

In addition, and this to your crate root:

#[macro_use]
extern crate twelve_bit;

Here is an example demonstrating how to interact with the U12 data type.

#[macro_use]
extern crate twelve_bit;

use twelve_bit::u12::*;

fn main() {
  assert_eq!(u12![1] + u12![2], u12![3]);
  assert_eq!(u12![4095], U12::maximum_value());
  assert_eq!(u12![4095].overflowing_add(u12![1]), (u12![0], true));
  assert_eq!(u12![4095].overflowing_add(u12![1]), (u12![0], true));
}

Missing Features

  • Support for ShlAssign and ShrAssign.
  • Support for bitwise assignment traits.
  • Support for U12::from_str_radix().
  • Support for Display, UpperHex, LowerHex, Octal and Binary.
  • Support for Hash.
  • Support for Step.

License

twelve_bit is distributed under the terms of the MIT license.

See LICENSE for details.

About

12-bit value types for Rust.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages