Module std::macros
This module holds shared implementation of macros used in std
- Macro function
num_max
- Macro function
num_min
- Macro function
num_diff
- Macro function
num_divide_and_round_up
- Macro function
num_pow
- Macro function
num_sqrt
- Macro function
num_to_string
- Macro function
range_do
- Macro function
range_do_eq
- Macro function
do
- Macro function
do_eq
- Macro function
try_as_u8
- Macro function
try_as_u16
- Macro function
try_as_u32
- Macro function
try_as_u64
- Macro function
try_as_u128
- Macro function
uq_from_quotient
- Macro function
uq_from_int
- Macro function
uq_add
- Macro function
uq_sub
- Macro function
uq_to_int
- Macro function
uq_int_mul
- Macro function
uq_int_div
Macro function num_max
public macro fun num_max<$T>($x: $T, $y: $T): $T
Implementation
public macro fun num_max<$T>($x: $T, $y: $T): $T {
let x = $x;
let y = $y;
if (x > y) x else y
}
Macro function num_min
public macro fun num_min<$T>($x: $T, $y: $T): $T
Implementation
public macro fun num_min<$T>($x: $T, $y: $T): $T {
let x = $x;
let y = $y;
if (x < y) x else y
}
Macro function num_diff
public macro fun num_diff<$T>($x: $T, $y: $T): $T
Implementation
public macro fun num_diff<$T>($x: $T, $y: $T): $T {
let x = $x;
let y = $y;
if (x > y) x - y else y - x
}
Macro function num_divide_and_round_up
public macro fun num_divide_and_round_up<$T>($x: $T, $y: $T): $T
Implementation
public macro fun num_divide_and_round_up<$T>($x: $T, $y: $T): $T {
let x = $x;
let y = $y;
if (x % y == 0) x / y else x / y + 1
}
Macro function num_pow
Implementation
Macro function num_sqrt
Implementation
Macro function num_to_string
public macro fun num_to_string($x: _): std::string::String
Implementation
public macro fun num_to_string($x: _): String {
let mut x = $x;
if (x == 0) {
return b"0".to_string()
};
let mut buffer = vector[];
while (x != 0) {
buffer.push_back(((48 + x % 10) as u8));
x = x / 10;
};
buffer.reverse();
buffer.to_string()
}
Macro function range_do
public macro fun range_do<$T, $R: drop>($start: $T, $stop: $T, $f: |$T| -> $R)
Implementation
public macro fun range_do<$T, $R: drop>($start: $T, $stop: $T, $f: |$T| -> $R) {
let mut i = $start;
let stop = $stop;
while (i < stop) {
$f(i);
i = i + 1;
}
}