Skip to main content

Module std::u256

use std::ascii;
use std::option;
use std::string;
use std::vector;

Function bitwise_not

Returns the bitwise not of the value.
Each bit that is 1 becomes 0. Each bit that is 0 becomes 1.

public fun bitwise_not(x: u256): u256

Function max

Return the larger of x and y

public fun max(x: u256, y: u256): u256

Function min

Return the smaller of x and y

public fun min(x: u256, y: u256): u256

Function diff

Return the absolute value of x - y

public fun diff(x: u256, y: u256): u256

Function divide_and_round_up

Calculate x / y, but round up the result.

public fun divide_and_round_up(x: u256, y: u256): u256

Function pow

Return the value of a base raised to a power

public fun pow(base: u256, exponent: u8): u256

Function try_as_u8

Try to convert a u256 to a u8. Returns None if the value is too large.

public fun try_as_u8(x: u256): std::option::Option<u8>

Function try_as_u16

Try to convert a u256 to a u16. Returns None if the value is too large.

public fun try_as_u16(x: u256): std::option::Option<u16>

Function try_as_u32

Try to convert a u256 to a u32. Returns None if the value is too large.

public fun try_as_u32(x: u256): std::option::Option<u32>

Function try_as_u64

Try to convert a u256 to a u64. Returns None if the value is too large.

public fun try_as_u64(x: u256): std::option::Option<u64>

Function try_as_u128

Try to convert a u256 to a u128. Returns None if the value is too large.

public fun try_as_u128(x: u256): std::option::Option<u128>

Function to_string

public fun to_string(x: u256): std::string::String

Function checked_add

Try to add x and y.
Returns None if the addition would overflow.

public fun checked_add(x: u256, y: u256): std::option::Option<u256>

Function checked_sub

Try to subtract y from x.
Returns None if y > x.

public fun checked_sub(x: u256, y: u256): std::option::Option<u256>

Function checked_mul

Try to multiply x and y.
Returns None if the multiplication would overflow.

public fun checked_mul(x: u256, y: u256): std::option::Option<u256>

Function checked_div

Try to divide x by y.
Returns None if y is zero.

public fun checked_div(x: u256, y: u256): std::option::Option<u256>

Function saturating_add

Add x and y, saturating at the maximum value instead of overflowing.

public fun saturating_add(x: u256, y: u256): u256

Function saturating_sub

Subtract y from x, saturating at 0 instead of underflowing.

public fun saturating_sub(x: u256, y: u256): u256

Function saturating_mul

Multiply x and y, saturating at the maximum value instead of overflowing.

public fun saturating_mul(x: u256, y: u256): u256

Function lossless_shl

Shifts x left by shift bits.
Returns None if the shift would lose any bits (if the operation is not reversible).

public fun lossless_shl(x: u256, shift: u8): std::option::Option<u256>

Function lossless_shr

Shifts x right by shift bits.
Returns None if the shift would lose any bits (if the operation is not reversible).

public fun lossless_shr(x: u256, shift: u8): std::option::Option<u256>

Function lossless_div

Divides x by y.
Returns None if y is zero or if there is a non-zero remainder (if x % y != 0). In other words, it returns None if the operation is not reversible.

public fun lossless_div(x: u256, y: u256): std::option::Option<u256>

Macro function max_value

Maximum value for a u256

public macro fun max_value(): u256

Macro function range_do

Loops applying f</span>toeachnumberfrom<spanclass="codeinline">f</span> to each number from <span class="code-inline">start to $stop (exclusive)

public macro fun range_do<$R: drop>($start: u256, $stop: u256, $f: |u256| -> $R)

Macro function range_do_eq

Loops applying f</span>toeachnumberfrom<spanclass="codeinline">f</span> to each number from <span class="code-inline">start to $stop (inclusive)

public macro fun range_do_eq<$R: drop>($start: u256, $stop: u256, $f: |u256| -> $R)

Macro function do

Loops applying f</span>toeachnumberfrom<spanclass="codeinline">0</span>to<spanclass="codeinline">f</span> to each number from <span class="code-inline">0</span> to <span class="code-inline">stop (exclusive)

public macro fun do<$R: drop>($stop: u256, $f: |u256| -> $R)

Macro function do_eq

Loops applying f</span>toeachnumberfrom<spanclass="codeinline">0</span>to<spanclass="codeinline">f</span> to each number from <span class="code-inline">0</span> to <span class="code-inline">stop (inclusive)

public macro fun do_eq<$R: drop>($stop: u256, $f: |u256| -> $R)