Crates.io | big_unsigned_ints |
lib.rs | big_unsigned_ints |
version | 0.1.6 |
source | src |
created_at | 2019-10-08 17:15:13.782075 |
updated_at | 2021-01-11 03:58:31.441897 |
description | A Crate For Big Unsigned Integers ranging from U256 to U2048 using u64 arrays all under a fixed-size of 32 |
homepage | |
repository | https://github.com/0xAtropine/big_unsigned_ints/tree/master |
max_upload_size | |
id | 170840 |
size | 16,166 |
Big_Unsigned_Ints is a crate for Rust that allows you to use large unsigned integers ranging from U256 through U2048. These are implemented using fixed-sized arrays and converts from u8 to u64 types. It also allows you to convert back from u64 to an array of u8s without using unsafe code.
The u8 -> u64 conversion uses mem::transmute with unsafe code to perform the process.
No functions should be used aside from the standard traits From and Into to convert between u8 and u64.
Write the following inside your cargo.toml file under dependencies:
big_unsigned_ints = "0.1.6"
Then, you can import it like so:
extern crate big_unsigned_ints;
Please view the tests folder for integration testing and how you can use the library itself.
fn example_bytes (){
// 32-fixed sized array of bytes
let x = [243u8;32];
// Conversion Occurs From Bytes of Array To The Type
let y = big_unsigned_ints::U256::from(x);
// Prints as Hexadecimal
println!("{}",y)
}
fn bytes_to_big_int (){
// Create an array of 32x 243u8, or 256bits
let x = [243u8;32];
// Convert From the Array of Bytes Into a U256 Type ([u64;4])
let y = big_unsigned_ints::U256::from(x);
// Convert Back Into An Array of Bytes Specifying the Type For Bytes
let b: [u8;32] = y.into();
}
U256 [u64;4]
| [u8;32]
U384 [u64;6]
| [u8;48]
U512 [u64;8]
| [u8;64]
U1024 [u64;16]
| [u8;128]
U2048 [u64;32]
| [u8;256]
MIT License
Apache 2.0