Back to Sui

Module `std::u256`

crates/sui-framework/docs/std/u256.md

latest24.4 KB
Original Source
<pre><code><b>use</b> <a href="../std/ascii.md#std_ascii">std::ascii</a>; <b>use</b> <a href="../std/option.md#std_option">std::option</a>; <b>use</b> <a href="../std/string.md#std_string">std::string</a>; <b>use</b> <a href="../std/vector.md#std_vector">std::vector</a>; </code></pre>

<a name="std_u256_bitwise_not"></a>

Function bitwise_not

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

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_bitwise_not">bitwise_not</a>(x: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_bitwise_not">bitwise_not</a>(x: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> { x ^ <a href="../std/u256.md#std_u256_max_value">max_value</a>!() } </code></pre> </details>

<a name="std_u256_max"></a>

Function max

Return the larger of <code>x</code> and <code>y</code>

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_max">max</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_max">max</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> { <a href="../std/macros.md#std_macros_num_max">std::macros::num_max</a>!(x, y) } </code></pre> </details>

<a name="std_u256_min"></a>

Function min

Return the smaller of <code>x</code> and <code>y</code>

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_min">min</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_min">min</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> { <a href="../std/macros.md#std_macros_num_min">std::macros::num_min</a>!(x, y) } </code></pre> </details>

<a name="std_u256_diff"></a>

Function diff

Return the absolute value of x - y

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_diff">diff</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_diff">diff</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> { <a href="../std/macros.md#std_macros_num_diff">std::macros::num_diff</a>!(x, y) } </code></pre> </details>

<a name="std_u256_divide_and_round_up"></a>

Function divide_and_round_up

Calculate x / y, but round up the result.

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_divide_and_round_up">divide_and_round_up</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_divide_and_round_up">divide_and_round_up</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> { <a href="../std/macros.md#std_macros_num_divide_and_round_up">std::macros::num_divide_and_round_up</a>!(x, y) } </code></pre> </details>

<a name="std_u256_pow"></a>

Function pow

Return the value of a base raised to a power

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_pow">pow</a>(base: <a href="../std/u256.md#std_u256">u256</a>, exponent: <a href="../std/u8.md#std_u8">u8</a>): <a href="../std/u256.md#std_u256">u256</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_pow">pow</a>(base: <a href="../std/u256.md#std_u256">u256</a>, exponent: <a href="../std/u8.md#std_u8">u8</a>): <a href="../std/u256.md#std_u256">u256</a> { <a href="../std/macros.md#std_macros_num_pow">std::macros::num_pow</a>!(base, exponent) } </code></pre> </details>

<a name="std_u256_try_as_u8"></a>

Function try_as_u8

Try to convert a <code><a href="../std/u256.md#std_u256">u256</a></code> to a <code><a href="../std/u8.md#std_u8">u8</a></code>. Returns <code>None</code> if the value is too large.

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_try_as_u8">try_as_u8</a>(x: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/option.md#std_option_Option">std::option::Option</a>&lt;<a href="../std/u8.md#std_u8">u8</a>&gt; </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_try_as_u8">try_as_u8</a>(x: <a href="../std/u256.md#std_u256">u256</a>): Option&lt;<a href="../std/u8.md#std_u8">u8</a>&gt; { <a href="../std/macros.md#std_macros_try_as_u8">std::macros::try_as_u8</a>!(x) } </code></pre> </details>

<a name="std_u256_try_as_u16"></a>

Function try_as_u16

Try to convert a <code><a href="../std/u256.md#std_u256">u256</a></code> to a <code><a href="../std/u16.md#std_u16">u16</a></code>. Returns <code>None</code> if the value is too large.

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_try_as_u16">try_as_u16</a>(x: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/option.md#std_option_Option">std::option::Option</a>&lt;<a href="../std/u16.md#std_u16">u16</a>&gt; </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_try_as_u16">try_as_u16</a>(x: <a href="../std/u256.md#std_u256">u256</a>): Option&lt;<a href="../std/u16.md#std_u16">u16</a>&gt; { <a href="../std/macros.md#std_macros_try_as_u16">std::macros::try_as_u16</a>!(x) } </code></pre> </details>

<a name="std_u256_try_as_u32"></a>

Function try_as_u32

Try to convert a <code><a href="../std/u256.md#std_u256">u256</a></code> to a <code><a href="../std/u32.md#std_u32">u32</a></code>. Returns <code>None</code> if the value is too large.

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_try_as_u32">try_as_u32</a>(x: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/option.md#std_option_Option">std::option::Option</a>&lt;<a href="../std/u32.md#std_u32">u32</a>&gt; </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_try_as_u32">try_as_u32</a>(x: <a href="../std/u256.md#std_u256">u256</a>): Option&lt;<a href="../std/u32.md#std_u32">u32</a>&gt; { <a href="../std/macros.md#std_macros_try_as_u32">std::macros::try_as_u32</a>!(x) } </code></pre> </details>

<a name="std_u256_try_as_u64"></a>

Function try_as_u64

Try to convert a <code><a href="../std/u256.md#std_u256">u256</a></code> to a <code><a href="../std/u64.md#std_u64">u64</a></code>. Returns <code>None</code> if the value is too large.

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_try_as_u64">try_as_u64</a>(x: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/option.md#std_option_Option">std::option::Option</a>&lt;<a href="../std/u64.md#std_u64">u64</a>&gt; </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_try_as_u64">try_as_u64</a>(x: <a href="../std/u256.md#std_u256">u256</a>): Option&lt;<a href="../std/u64.md#std_u64">u64</a>&gt; { <a href="../std/macros.md#std_macros_try_as_u64">std::macros::try_as_u64</a>!(x) } </code></pre> </details>

<a name="std_u256_try_as_u128"></a>

Function try_as_u128

Try to convert a <code><a href="../std/u256.md#std_u256">u256</a></code> to a <code><a href="../std/u128.md#std_u128">u128</a></code>. Returns <code>None</code> if the value is too large.

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_try_as_u128">try_as_u128</a>(x: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/option.md#std_option_Option">std::option::Option</a>&lt;<a href="../std/u128.md#std_u128">u128</a>&gt; </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_try_as_u128">try_as_u128</a>(x: <a href="../std/u256.md#std_u256">u256</a>): Option&lt;<a href="../std/u128.md#std_u128">u128</a>&gt; { <a href="../std/macros.md#std_macros_try_as_u128">std::macros::try_as_u128</a>!(x) } </code></pre> </details>

<a name="std_u256_to_string"></a>

Function to_string

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_to_string">to_string</a>(x: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/string.md#std_string_String">std::string::String</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_to_string">to_string</a>(x: <a href="../std/u256.md#std_u256">u256</a>): String { <a href="../std/macros.md#std_macros_num_to_string">std::macros::num_to_string</a>!(x) } </code></pre> </details>

<a name="std_u256_checked_add"></a>

Function checked_add

Try to add <code>x</code> and <code>y</code>. Returns <code>None</code> if the addition would overflow.

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_checked_add">checked_add</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/option.md#std_option_Option">std::option::Option</a>&lt;<a href="../std/u256.md#std_u256">u256</a>&gt; </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_checked_add">checked_add</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): Option&lt;<a href="../std/u256.md#std_u256">u256</a>&gt; { <a href="../std/macros.md#std_macros_num_checked_add">std::macros::num_checked_add</a>!(x, y, <a href="../std/u256.md#std_u256_max_value">max_value</a>!()) } </code></pre> </details>

<a name="std_u256_checked_sub"></a>

Function checked_sub

Try to subtract <code>y</code> from <code>x</code>. Returns <code>None</code> if <code>y > x</code>.

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_checked_sub">checked_sub</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/option.md#std_option_Option">std::option::Option</a>&lt;<a href="../std/u256.md#std_u256">u256</a>&gt; </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_checked_sub">checked_sub</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): Option&lt;<a href="../std/u256.md#std_u256">u256</a>&gt; { <a href="../std/macros.md#std_macros_num_checked_sub">std::macros::num_checked_sub</a>!(x, y) } </code></pre> </details>

<a name="std_u256_checked_mul"></a>

Function checked_mul

Try to multiply <code>x</code> and <code>y</code>. Returns <code>None</code> if the multiplication would overflow.

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_checked_mul">checked_mul</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/option.md#std_option_Option">std::option::Option</a>&lt;<a href="../std/u256.md#std_u256">u256</a>&gt; </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_checked_mul">checked_mul</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): Option&lt;<a href="../std/u256.md#std_u256">u256</a>&gt; { <a href="../std/macros.md#std_macros_num_checked_mul">std::macros::num_checked_mul</a>!(x, y, <a href="../std/u256.md#std_u256_max_value">max_value</a>!()) } </code></pre> </details>

<a name="std_u256_checked_div"></a>

Function checked_div

Try to divide <code>x</code> by <code>y</code>. Returns <code>None</code> if <code>y</code> is zero.

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_checked_div">checked_div</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/option.md#std_option_Option">std::option::Option</a>&lt;<a href="../std/u256.md#std_u256">u256</a>&gt; </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_checked_div">checked_div</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): Option&lt;<a href="../std/u256.md#std_u256">u256</a>&gt; { <a href="../std/macros.md#std_macros_num_checked_div">std::macros::num_checked_div</a>!(x, y) } </code></pre> </details>

<a name="std_u256_saturating_add"></a>

Function saturating_add

Add <code>x</code> and <code>y</code>, saturating at the maximum value instead of overflowing.

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_saturating_add">saturating_add</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_saturating_add">saturating_add</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> { <a href="../std/macros.md#std_macros_num_saturating_add">std::macros::num_saturating_add</a>!(x, y, <a href="../std/u256.md#std_u256_max_value">max_value</a>!()) } </code></pre> </details>

<a name="std_u256_saturating_sub"></a>

Function saturating_sub

Subtract <code>y</code> from <code>x</code>, saturating at <code>0</code> instead of underflowing.

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_saturating_sub">saturating_sub</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_saturating_sub">saturating_sub</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> { <a href="../std/macros.md#std_macros_num_saturating_sub">std::macros::num_saturating_sub</a>!(x, y) } </code></pre> </details>

<a name="std_u256_saturating_mul"></a>

Function saturating_mul

Multiply <code>x</code> and <code>y</code>, saturating at the maximum value instead of overflowing.

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_saturating_mul">saturating_mul</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_saturating_mul">saturating_mul</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/u256.md#std_u256">u256</a> { <a href="../std/macros.md#std_macros_num_saturating_mul">std::macros::num_saturating_mul</a>!(x, y, <a href="../std/u256.md#std_u256_max_value">max_value</a>!()) } </code></pre> </details>

<a name="std_u256_lossless_shl"></a>

Function lossless_shl

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

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_lossless_shl">lossless_shl</a>(x: <a href="../std/u256.md#std_u256">u256</a>, shift: <a href="../std/u8.md#std_u8">u8</a>): <a href="../std/option.md#std_option_Option">std::option::Option</a>&lt;<a href="../std/u256.md#std_u256">u256</a>&gt; </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_lossless_shl">lossless_shl</a>(x: <a href="../std/u256.md#std_u256">u256</a>, shift: <a href="../std/u8.md#std_u8">u8</a>): Option&lt;<a href="../std/u256.md#std_u256">u256</a>&gt; { <b>let</b> result = x &lt;&lt; shift; <b>if</b> (result &gt;&gt; shift == x) <a href="../std/option.md#std_option_some">option::some</a>(result) <b>else</b> <a href="../std/option.md#std_option_none">option::none</a>() } </code></pre> </details>

<a name="std_u256_lossless_shr"></a>

Function lossless_shr

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

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_lossless_shr">lossless_shr</a>(x: <a href="../std/u256.md#std_u256">u256</a>, shift: <a href="../std/u8.md#std_u8">u8</a>): <a href="../std/option.md#std_option_Option">std::option::Option</a>&lt;<a href="../std/u256.md#std_u256">u256</a>&gt; </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_lossless_shr">lossless_shr</a>(x: <a href="../std/u256.md#std_u256">u256</a>, shift: <a href="../std/u8.md#std_u8">u8</a>): Option&lt;<a href="../std/u256.md#std_u256">u256</a>&gt; { <b>let</b> result = x &gt;&gt; shift; <b>if</b> (result &lt;&lt; shift == x) <a href="../std/option.md#std_option_some">option::some</a>(result) <b>else</b> <a href="../std/option.md#std_option_none">option::none</a>() } </code></pre> </details>

<a name="std_u256_lossless_div"></a>

Function lossless_div

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

<pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_lossless_div">lossless_div</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): <a href="../std/option.md#std_option_Option">std::option::Option</a>&lt;<a href="../std/u256.md#std_u256">u256</a>&gt; </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>fun</b> <a href="../std/u256.md#std_u256_lossless_div">lossless_div</a>(x: <a href="../std/u256.md#std_u256">u256</a>, y: <a href="../std/u256.md#std_u256">u256</a>): Option&lt;<a href="../std/u256.md#std_u256">u256</a>&gt; { <a href="../std/macros.md#std_macros_num_lossless_div">std::macros::num_lossless_div</a>!(x, y) } </code></pre> </details>

<a name="std_u256_max_value"></a>

Macro function max_value

Maximum value for a <code><a href="../std/u256.md#std_u256">u256</a></code>

<pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u256.md#std_u256_max_value">max_value</a>(): <a href="../std/u256.md#std_u256">u256</a> </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u256.md#std_u256_max_value">max_value</a>(): <a href="../std/u256.md#std_u256">u256</a> { 0xFFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF_FFFF } </code></pre> </details>

<a name="std_u256_range_do"></a>

Macro function range_do

Loops applying <code>$f</code> to each number from <code>$start</code> to <code>$stop</code> (exclusive)

<pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u256.md#std_u256_range_do">range_do</a>&lt;$R: drop&gt;($start: <a href="../std/u256.md#std_u256">u256</a>, $stop: <a href="../std/u256.md#std_u256">u256</a>, $f: |<a href="../std/u256.md#std_u256">u256</a>| -&gt; $R) </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u256.md#std_u256_range_do">range_do</a>&lt;$R: drop&gt;($start: <a href="../std/u256.md#std_u256">u256</a>, $stop: <a href="../std/u256.md#std_u256">u256</a>, $f: |<a href="../std/u256.md#std_u256">u256</a>| -&gt; $R) { <a href="../std/macros.md#std_macros_range_do">std::macros::range_do</a>!($start, $stop, $f) } </code></pre> </details>

<a name="std_u256_range_do_eq"></a>

Macro function range_do_eq

Loops applying <code>$f</code> to each number from <code>$start</code> to <code>$stop</code> (inclusive)

<pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u256.md#std_u256_range_do_eq">range_do_eq</a>&lt;$R: drop&gt;($start: <a href="../std/u256.md#std_u256">u256</a>, $stop: <a href="../std/u256.md#std_u256">u256</a>, $f: |<a href="../std/u256.md#std_u256">u256</a>| -&gt; $R) </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u256.md#std_u256_range_do_eq">range_do_eq</a>&lt;$R: drop&gt;($start: <a href="../std/u256.md#std_u256">u256</a>, $stop: <a href="../std/u256.md#std_u256">u256</a>, $f: |<a href="../std/u256.md#std_u256">u256</a>| -&gt; $R) { <a href="../std/macros.md#std_macros_range_do_eq">std::macros::range_do_eq</a>!($start, $stop, $f) } </code></pre> </details>

<a name="std_u256_do"></a>

Macro function do

Loops applying <code>$f</code> to each number from <code>0</code> to <code>$stop</code> (exclusive)

<pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u256.md#std_u256_do">do</a>&lt;$R: drop&gt;($stop: <a href="../std/u256.md#std_u256">u256</a>, $f: |<a href="../std/u256.md#std_u256">u256</a>| -&gt; $R) </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u256.md#std_u256_do">do</a>&lt;$R: drop&gt;($stop: <a href="../std/u256.md#std_u256">u256</a>, $f: |<a href="../std/u256.md#std_u256">u256</a>| -&gt; $R) { <a href="../std/macros.md#std_macros_do">std::macros::do</a>!($stop, $f) } </code></pre> </details>

<a name="std_u256_do_eq"></a>

Macro function do_eq

Loops applying <code>$f</code> to each number from <code>0</code> to <code>$stop</code> (inclusive)

<pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u256.md#std_u256_do_eq">do_eq</a>&lt;$R: drop&gt;($stop: <a href="../std/u256.md#std_u256">u256</a>, $f: |<a href="../std/u256.md#std_u256">u256</a>| -&gt; $R) </code></pre> <details> <summary>Implementation</summary> <pre><code><b>public</b> <b>macro</b> <b>fun</b> <a href="../std/u256.md#std_u256_do_eq">do_eq</a>&lt;$R: drop&gt;($stop: <a href="../std/u256.md#std_u256">u256</a>, $f: |<a href="../std/u256.md#std_u256">u256</a>| -&gt; $R) { <a href="../std/macros.md#std_macros_do_eq">std::macros::do_eq</a>!($stop, $f) } </code></pre> </details>