Skip to main content

Module std::macros

This module holds shared implementation of macros used in std

Macro function num_max

public(package) macro fun num_max<$T>($x: $T, $y: $T): $T

Macro function num_min

public(package) macro fun num_min<$T>($x: $T, $y: $T): $T

Macro function num_diff

public(package) macro fun num_diff<$T>($x: $T, $y: $T): $T

Macro function num_divide_and_round_up

public(package) macro fun num_divide_and_round_up<$T>($x: $T, $y: $T): $T

Macro function num_pow

public(package) macro fun num_pow($base: _, $exponent: u8): _

Macro function num_sqrt

public(package) macro fun num_sqrt<$T, $U>($x: $T, $bitsize: u8): $T

Macro function num_to_string

public(package) macro fun num_to_string($x: _): std::string::String

Macro function num_checked_add

public(package) macro fun num_checked_add<$T>($x: $T, $y: $T, $max_t: $T): std::option::Option<$T>

Macro function num_checked_sub

public(package) macro fun num_checked_sub<$T>($x: $T, $y: $T): std::option::Option<$T>

Macro function num_checked_mul

public(package) macro fun num_checked_mul<$T>($x: $T, $y: $T, $max_t: $T): std::option::Option<$T>

Macro function num_checked_div

public(package) macro fun num_checked_div<$T>($x: $T, $y: $T): std::option::Option<$T>

Macro function num_saturating_add

public(package) macro fun num_saturating_add<$T>($x: $T, $y: $T, $max_t: $T): $T

Macro function num_saturating_sub

public(package) macro fun num_saturating_sub<$T>($x: $T, $y: $T): $T

Macro function num_saturating_mul

public(package) macro fun num_saturating_mul<$T>($x: $T, $y: $T, $max_t: $T): $T

Macro function num_checked_shl

public macro fun num_checked_shl<$T>($x: $T, $shift: u8, $bit_size: u8): std::option::Option<$T>

Macro function num_checked_shr

public macro fun num_checked_shr<$T>($x: $T, $shift: u8, $bit_size: u8): std::option::Option<$T>

Macro function num_lossless_shl

public macro fun num_lossless_shl<$T>($x: $T, $shift: u8, $bit_size: u8): std::option::Option<$T>

Macro function num_lossless_shr

public macro fun num_lossless_shr<$T>($x: $T, $shift: u8, $bit_size: u8): std::option::Option<$T>

Macro function num_lossless_div

public macro fun num_lossless_div<$T>($x: $T, $y: $T): std::option::Option<$T>

Macro function range_do

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

Macro function range_do_eq

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

Macro function do

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

Macro function do_eq

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

Macro function try_as_u8

public(package) macro fun try_as_u8($x: _): std::option::Option<u8>

Macro function try_as_u16

public(package) macro fun try_as_u16($x: _): std::option::Option<u16>

Macro function try_as_u32

public(package) macro fun try_as_u32($x: _): std::option::Option<u32>

Macro function try_as_u64

public(package) macro fun try_as_u64($x: _): std::option::Option<u64>

Macro function try_as_u128

public(package) macro fun try_as_u128($x: _): std::option::Option<u128>

Macro function uq_from_quotient

Creates a fixed-point value from a quotient specified by its numerator and denominator. T</span>istheunderlyingintegertypeforthefixedpointvalue,where<spanclass="codeinline">T</span> is the underlying integer type for the fixed-point value, where <span class="code-inline">T has tbits</span>bits.<spanclass="codeinline">t_bits</span> bits. <span class="code-inline">U is the type used for intermediate calculations, where U</span>isthenextlargerintegertype.<spanclass="codeinline">U</span> is the next larger integer type. <span class="code-inline">max_t is the maximum value that can be represented by T</span>.<spanclass="codeinline">T</span>. <span class="code-inline">t_bits (as mentioned above) is the total number of bits in the fixed-point value (integer plus fractional). $fractional_bits is the number of fractional bits in the fixed-point value.

public(package) macro fun uq_from_quotient<$T, $U>($numerator: $T, $denominator: $T, $max_t: $T, $t_bits: u8, $fractional_bits: u8, $abort_denominator: _, $abort_quotient_too_small: _, $abort_quotient_too_large: _): $T

Macro function uq_from_int

public(package) macro fun uq_from_int<$T, $U>($integer: $T, $fractional_bits: u8): $U

Macro function uq_add

public(package) macro fun uq_add<$T, $U>($a: $T, $b: $T, $max_t: $T, $abort_overflow: _): $T

Macro function uq_sub

public(package) macro fun uq_sub<$T>($a: $T, $b: $T, $abort_overflow: _): $T

Macro function uq_to_int

public(package) macro fun uq_to_int<$T, $U>($a: $U, $fractional_bits: u8): $T

Macro function uq_int_mul

public(package) macro fun uq_int_mul<$T, $U>($val: $T, $multiplier: $T, $max_t: $T, $fractional_bits: u8, $abort_overflow: _): $T

Macro function uq_int_div

public(package) macro fun uq_int_div<$T, $U>($val: $T, $divisor: $T, $max_t: $T, $fractional_bits: u8, $abort_division_by_zero: _, $abort_overflow: _): $T