SqlUint

Struct SqlUint 

Source
pub struct SqlUint<const BITS: usize, const LIMBS: usize>(/* private fields */);
Expand description

A SQL-compatible wrapper for 256-bit unsigned integers.

SqlU256 wraps alloy::primitives::U256 and implements all necessary traits for seamless SQLx database integration. It provides full arithmetic operations, type conversions, and consistent hexadecimal storage format across databases.

§Features

  • Arithmetic Operations: Supports +, -, *, /, %, bitwise operations, and more
  • Type Conversions: Convert from/to various integer types with overflow checking
  • Database Storage: Consistent hexadecimal format (0x…) across all databases
  • Input Flexibility: FromStr accepts both decimal and hexadecimal strings
  • SQLx Integration: Implements Type, Encode, and Decode for MySQL, PostgreSQL, SQLite

§Examples

use ethereum_mysql::SqlU256;
use alloy::primitives::U256;
use std::str::FromStr;

// Create from various types
let from_u64 = SqlU256::from(42u64);
let from_decimal = SqlU256::from_str("123456789").unwrap();
let from_hex = SqlU256::from_str("0x75bcd15").unwrap();
let zero = SqlU256::ZERO;

// Arithmetic operations
let a = SqlU256::from(100u64);
let b = SqlU256::from(50u64);
let sum = a + b;                    // 150
let product = a * b;                // 5000
let power = a.pow(2);               // 10000

// Safe operations
let checked = a.checked_add(b);     // Some(150)
let saturated = a.saturating_sub(SqlU256::from(200u64)); // 0

// Type conversions
let back_to_u256: U256 = from_u64.into();  // SqlU256 -> U256 (always safe)
let back_to_u64: u64 = from_u64.try_into().unwrap(); // SqlU256 -> u64 (may overflow)

Implementations§

Source§

impl SqlUint<256, 4>

Source

pub fn square(self) -> Self

Returns the square of this value

Source

pub fn pow(self, exp: usize) -> Self

Returns the power of this value raised to the given exponent

Source

pub fn gcd(self, other: Self) -> Self

Returns the greatest common divisor of two values

Source

pub fn lcm(self, other: Self) -> Self

Returns the least common multiple of two values

Source

pub fn checked_add(self, rhs: Self) -> Option<Self>

Checked addition. Returns None if overflow occurred.

Source

pub fn checked_sub(self, rhs: Self) -> Option<Self>

Checked subtraction. Returns None if overflow occurred.

Source

pub fn checked_mul(self, rhs: Self) -> Option<Self>

Checked multiplication. Returns None if overflow occurred.

Source

pub fn checked_div(self, rhs: Self) -> Option<Self>

Checked division. Returns None if rhs == 0.

Source

pub fn saturating_add(self, rhs: Self) -> Self

Saturating addition. Clamps the result to U256::MAX if overflow occurred.

Source

pub fn saturating_sub(self, rhs: Self) -> Self

Saturating subtraction. Clamps the result to 0 if underflow occurred.

Source

pub fn saturating_mul(self, rhs: Self) -> Self

Saturating multiplication. Clamps the result to U256::MAX if overflow occurred.

Source

pub fn is_zero(self) -> bool

Returns true if the value is zero

Source

pub fn min(self, other: Self) -> Self

Returns the minimum of two values

Source

pub fn max(self, other: Self) -> Self

Returns the maximum of two values

Source§

impl<const BITS: usize, const LIMBS: usize> SqlUint<BITS, LIMBS>

Source

pub const ZERO: Self

Creates a new SqlUint from a Uint value.

§Examples

Equivalent to SqlU256::from(0u64) but available as a compile-time constant.

Source

pub fn inner(&self) -> &Uint<BITS, LIMBS>

Returns a reference to the inner U256 value.

This is useful when you need to interact with APIs that expect U256 directly.

§Examples
use ethereum_mysql::SqlU256;

let sql_u256 = SqlU256::from(42u64);
let inner_ref: &alloy::primitives::U256 = sql_u256.inner();
Source

pub fn into_inner(self) -> Uint<BITS, LIMBS>

Consumes self and returns the inner Uint value.

Source§

impl SqlUint<256, 4>

Source

pub const ETHER: Self

The number of wei in one ether (10^18).

Source

pub fn from_be_slice(bytes: &[u8]) -> Self

Creates a SqlU256 from a big-endian byte slice (pads/truncates as alloy U256).

Source

pub fn as_u8(&self) -> Result<u8, &'static str>

Try to convert this value to u8. Returns Err if out of range.

Source

pub fn as_u16(&self) -> Result<u16, &'static str>

Try to convert this value to u16. Returns Err if out of range.

Source

pub fn as_u32(&self) -> Result<u32, &'static str>

Try to convert this value to u32. Returns Err if out of range.

Source

pub fn as_u64(&self) -> Result<u64, &'static str>

Try to convert this value to u64. Returns Err if out of range.

Source

pub fn as_u128(&self) -> Result<u128, &'static str>

Try to convert this value to u128. Returns Err if out of range.

Methods from Deref<Target = Uint<BITS, LIMBS>>§

Source

pub fn to_base_le(&self, base: u64) -> impl Iterator<Item = u64>

Returns an iterator over the base base digits of the number in little-endian order.

Pro tip: instead of setting base = 10, set it to the highest power of 10 that still fits u64. This way much fewer iterations are required to extract all the digits.

§Panics

Panics if the base is less than 2.

Source

pub fn to_base_be(&self, base: u64) -> impl Iterator<Item = u64>

Returns an iterator over the base base digits of the number in big-endian order.

Pro tip: instead of setting base = 10, set it to the highest power of 10 that still fits u64. This way much fewer iterations are required to extract all the digits.

§Panics

Panics if the base is less than 2.

Source

pub fn bit(&self, index: usize) -> bool

Returns whether a specific bit is set.

Returns false if index exceeds the bit width of the number.

Source

pub fn byte(&self, index: usize) -> u8

Returns a specific byte. The byte at index 0 is the least significant byte (little endian).

§Panics

Panics if index is greater than or equal to the byte width of the number.

§Examples
let x = uint!(0x1234567890_U64);
let bytes = [
    x.byte(0), // 0x90
    x.byte(1), // 0x78
    x.byte(2), // 0x56
    x.byte(3), // 0x34
    x.byte(4), // 0x12
    x.byte(5), // 0x00
    x.byte(6), // 0x00
    x.byte(7), // 0x00
];
assert_eq!(bytes, x.to_le_bytes());

Panics if out of range.

let x = uint!(0x1234567890_U64);
let _ = x.byte(8);
Source

pub fn checked_byte(&self, index: usize) -> Option<u8>

Returns a specific byte, or None if index is out of range. The byte at index 0 is the least significant byte (little endian).

§Examples
let x = uint!(0x1234567890_U64);
assert_eq!(x.checked_byte(0), Some(0x90));
assert_eq!(x.checked_byte(7), Some(0x00));
// Out of range
assert_eq!(x.checked_byte(8), None);
Source

pub fn leading_zeros(&self) -> usize

Returns the number of leading zeros in the binary representation of self.

Source

pub fn leading_ones(&self) -> usize

Returns the number of leading ones in the binary representation of self.

Source

pub fn trailing_zeros(&self) -> usize

Returns the number of trailing zeros in the binary representation of self.

Source

pub fn trailing_ones(&self) -> usize

Returns the number of trailing ones in the binary representation of self.

Source

pub fn count_ones(&self) -> usize

Returns the number of ones in the binary representation of self.

Source

pub fn count_zeros(&self) -> usize

Returns the number of zeros in the binary representation of self.

Source

pub fn bit_len(&self) -> usize

Returns the dynamic length of this number in bits, ignoring leading zeros.

For the maximum length of the type, use Uint::BITS.

Source

pub fn byte_len(&self) -> usize

Returns the dynamic length of this number in bytes, ignoring leading zeros.

For the maximum length of the type, use Uint::BYTES.

Source

pub fn most_significant_bits(&self) -> (u64, usize)

Returns the most significant 64 bits of the number and the exponent.

Given return value $(\mathtt{bits}, \mathtt{exponent})$, the self can be approximated as

$$ \mathtt{self} ≈ \mathtt{bits} ⋅ 2^\mathtt{exponent} $$

If self is $<≥> 2^{63}$, then exponent will be zero and bits will have leading zeros.

Source

pub const BYTES: usize

Source

pub fn as_le_slice(&self) -> &[u8]

Access the underlying store as a little-endian slice of bytes.

Only available on little-endian targets.

If BITS does not evenly divide 8, it is padded with zero bits in the most significant position.

Source

pub fn as_le_bytes(&self) -> Cow<'_, [u8]>

Access the underlying store as a little-endian bytes.

Uses an optimized implementation on little-endian targets.

Source

pub fn as_le_bytes_trimmed(&self) -> Cow<'_, [u8]>

Access the underlying store as a little-endian bytes with trailing zeros removed.

Uses an optimized implementation on little-endian targets.

Source

pub fn to_le_bytes<const BYTES: usize>(&self) -> [u8; BYTES]

Converts the Uint to a little-endian byte array of size exactly Self::BYTES.

§Panics

Panics if the generic parameter BYTES is not exactly Self::BYTES. Ideally this would be a compile time error, but this is blocked by Rust issue #60551.

Source

pub fn to_le_bytes_vec(&self) -> Vec<u8>

Converts the Uint to a little-endian byte vector of size exactly Self::BYTES.

This method is useful when Self::to_le_bytes can not be used because byte size is not known compile time.

Source

pub fn to_le_bytes_trimmed_vec(&self) -> Vec<u8>

Converts the Uint to a little-endian byte vector with trailing zeros bytes removed.

Source

pub fn to_be_bytes<const BYTES: usize>(&self) -> [u8; BYTES]

Converts the Uint to a big-endian byte array of size exactly Self::BYTES.

§Panics

Panics if the generic parameter BYTES is not exactly Self::BYTES. Ideally this would be a compile time error, but this is blocked by Rust issue #60551.

Source

pub fn to_be_bytes_vec(&self) -> Vec<u8>

Converts the Uint to a big-endian byte vector of size exactly Self::BYTES.

This method is useful when Self::to_be_bytes can not be used because byte size is not known compile time.

Source

pub fn to_be_bytes_trimmed_vec(&self) -> Vec<u8>

Converts the Uint to a big-endian byte vector with leading zeros bytes removed.

Source

pub fn copy_le_bytes_to(&self, buf: &mut [u8]) -> usize

Writes the little-endian representation of the Uint to the given buffer. The buffer must be large enough to hold Self::BYTES bytes.

§Panics

Panics if the buffer is not large enough to hold Self::BYTES bytes.

§Returns

The number of bytes written to the buffer (always equal to Self::BYTES, but often useful to make explicit for encoders).

Source

pub fn checked_copy_le_bytes_to(&self, buf: &mut [u8]) -> Option<usize>

Writes the little-endian representation of the Uint to the given buffer. The buffer must be large enough to hold Self::BYTES bytes.

§Returns

None, if the buffer is not large enough to hold Self::BYTES bytes, and does not modify the buffer.

Some with the number of bytes written to the buffer (always equal to Self::BYTES, but often useful to make explicit for encoders).

Source

pub fn copy_be_bytes_to(&self, buf: &mut [u8]) -> usize

Writes the big-endian representation of the Uint to the given buffer. The buffer must be large enough to hold Self::BYTES bytes.

§Panics

Panics if the buffer is not large enough to hold Self::BYTES bytes.

§Returns

The number of bytes written to the buffer (always equal to Self::BYTES, but often useful to make explicit for encoders).

Source

pub fn checked_copy_be_bytes_to(&self, buf: &mut [u8]) -> Option<usize>

Writes the big-endian representation of the Uint to the given buffer. The buffer must be large enough to hold Self::BYTES bytes.

§Returns

None, if the buffer is not large enough to hold Self::BYTES bytes, and does not modify the buffer.

Some with the number of bytes written to the buffer (always equal to Self::BYTES, but often useful to make explicit for encoders).

Source

pub fn is_zero(&self) -> bool

Returns true if the value is zero.

Source

pub fn const_is_zero(&self) -> bool

Returns true if the value is zero.

Note that this currently might perform worse than is_zero.

Source

pub fn const_eq(&self, other: &Uint<BITS, LIMBS>) -> bool

Returns true if self equals other.

Note that this currently might perform worse than the derived PartialEq (== operator).

Source

pub fn to<T>(&self) -> T
where Uint<BITS, LIMBS>: UintTryTo<T>, T: Debug,

§Panics

Panics if the conversion fails, for example if the value is too large for the bit-size of the target type.

§Examples
assert_eq!(300_U12.to::<i16>(), 300_i16);
assert_eq!(300_U12.to::<U256>(), 300_U256);
Source

pub fn wrapping_to<T>(&self) -> T
where Uint<BITS, LIMBS>: UintTryTo<T>,

§Examples
assert_eq!(300_U12.wrapping_to::<i8>(), 44_i8);
assert_eq!(255_U32.wrapping_to::<i8>(), -1_i8);
assert_eq!(0x1337cafec0d3_U256.wrapping_to::<U32>(), 0xcafec0d3_U32);
Source

pub fn saturating_to<T>(&self) -> T
where Uint<BITS, LIMBS>: UintTryTo<T>,

§Examples
assert_eq!(300_U12.saturating_to::<i16>(), 300_i16);
assert_eq!(255_U32.saturating_to::<i8>(), 127);
assert_eq!(0x1337cafec0d3_U256.saturating_to::<U32>(), U32::MAX);
Source

pub const LIMBS: usize

Source

pub const MASK: u64

Source

pub const BITS: usize = BITS

Source

pub const ZERO: Uint<BITS, LIMBS>

Source

pub const ONE: Uint<BITS, LIMBS>

Source

pub const MIN: Uint<BITS, LIMBS> = Self::ZERO

Source

pub const MAX: Uint<BITS, LIMBS>

Source

pub fn as_limbs(&self) -> &[u64; LIMBS]

View the array of limbs.

Trait Implementations§

Source§

impl Add<&SqlUint<256, 4>> for &SqlU256

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &SqlU256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<&SqlUint<256, 4>> for SqlU256

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: &Self) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<SqlUint<256, 4>> for &SqlU256

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: SqlU256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<SqlUint<256, 4>> for i128

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: SqlU256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<SqlUint<256, 4>> for i16

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: SqlU256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<SqlUint<256, 4>> for i32

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: SqlU256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<SqlUint<256, 4>> for i64

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: SqlU256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<SqlUint<256, 4>> for i8

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: SqlU256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<SqlUint<256, 4>> for isize

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: SqlU256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<SqlUint<256, 4>> for u128

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: SqlU256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<SqlUint<256, 4>> for u16

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: SqlU256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<SqlUint<256, 4>> for u32

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: SqlU256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<SqlUint<256, 4>> for u64

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: SqlU256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<SqlUint<256, 4>> for u8

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: SqlU256) -> Self::Output

Performs the + operation. Read more
Source§

impl Add<SqlUint<256, 4>> for usize

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the + operator.
Source§

fn add(self, rhs: SqlU256) -> Self::Output

Performs the + operation. Read more
Source§

impl AddAssign<&SqlUint<256, 4>> for SqlU256

Source§

fn add_assign(&mut self, rhs: &Self)

Performs the += operation. Read more
Source§

impl<const BITS: usize, const LIMBS: usize> AsRef<Uint<BITS, LIMBS>> for SqlUint<BITS, LIMBS>

Source§

fn as_ref(&self) -> &Uint<BITS, LIMBS>

Converts this type into a shared reference of the (usually inferred) input type.
Source§

impl<const BITS: usize, const LIMBS: usize> Clone for SqlUint<BITS, LIMBS>

Source§

fn clone(&self) -> SqlUint<BITS, LIMBS>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<const BITS: usize, const LIMBS: usize> Debug for SqlUint<BITS, LIMBS>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a, const BITS: usize, const LIMBS: usize, DB: Database> Decode<'a, DB> for SqlUint<BITS, LIMBS>
where String: Decode<'a, DB>,

Available on crate feature sqlx only.
Source§

fn decode(value: <DB as Database>::ValueRef<'a>) -> Result<Self, BoxDynError>

Decode a new value of this type using a raw value from the database.
Source§

impl<const BITS: usize, const LIMBS: usize> Deref for SqlUint<BITS, LIMBS>

Source§

type Target = Uint<BITS, LIMBS>

The resulting type after dereferencing.
Source§

fn deref(&self) -> &Self::Target

Dereferences the value.
Source§

impl<'de, const BITS: usize, const LIMBS: usize> Deserialize<'de> for SqlUint<BITS, LIMBS>

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<const BITS: usize, const LIMBS: usize> Display for SqlUint<BITS, LIMBS>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Div<&SqlUint<256, 4>> for &SqlU256

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: &SqlU256) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<&SqlUint<256, 4>> for SqlU256

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: &Self) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<SqlUint<256, 4>> for &SqlU256

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: SqlU256) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<SqlUint<256, 4>> for u128

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: SqlU256) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<SqlUint<256, 4>> for u16

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: SqlU256) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<SqlUint<256, 4>> for u32

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: SqlU256) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<SqlUint<256, 4>> for u64

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: SqlU256) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<SqlUint<256, 4>> for u8

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: SqlU256) -> Self::Output

Performs the / operation. Read more
Source§

impl Div<SqlUint<256, 4>> for usize

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the / operator.
Source§

fn div(self, rhs: SqlU256) -> Self::Output

Performs the / operation. Read more
Source§

impl DivAssign<&SqlUint<256, 4>> for SqlU256

Source§

fn div_assign(&mut self, rhs: &Self)

Performs the /= operation. Read more
Source§

impl<'a, const BITS: usize, const LIMBS: usize, DB: Database> Encode<'a, DB> for SqlUint<BITS, LIMBS>
where String: Encode<'a, DB>,

Available on crate feature sqlx only.
Source§

fn encode_by_ref( &self, buf: &mut <DB as Database>::ArgumentBuffer<'a>, ) -> Result<IsNull, BoxDynError>

Writes the value of self into buf without moving self. Read more
Source§

fn encode( self, buf: &mut <DB as Database>::ArgumentBuffer<'q>, ) -> Result<IsNull, Box<dyn Error + Sync + Send>>
where Self: Sized,

Writes the value of self into buf in the expected format for the database.
Source§

fn produces(&self) -> Option<<DB as Database>::TypeInfo>

Source§

fn size_hint(&self) -> usize

Source§

impl<const BITS: usize, const LIMBS: usize> From<SqlUint<BITS, LIMBS>> for Uint<BITS, LIMBS>

Source§

fn from(value: SqlUint<BITS, LIMBS>) -> Self

Converts to this type from the input type.
Source§

impl<const BITS: usize, const LIMBS: usize> From<Uint<BITS, LIMBS>> for SqlUint<BITS, LIMBS>

Source§

fn from(value: Uint<BITS, LIMBS>) -> Self

Converts to this type from the input type.
Source§

impl<const BITS: usize, const LIMBS: usize> FromStr for SqlUint<BITS, LIMBS>

Source§

type Err = <Uint<BITS, LIMBS> as FromStr>::Err

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Source§

impl<const BITS: usize, const LIMBS: usize> Hash for SqlUint<BITS, LIMBS>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<const BITS: usize, const LIMBS: usize> LowerHex for SqlUint<BITS, LIMBS>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Mul<&SqlUint<256, 4>> for &SqlU256

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &SqlU256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<&SqlUint<256, 4>> for SqlU256

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: &Self) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<SqlUint<256, 4>> for &SqlU256

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: SqlU256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<SqlUint<256, 4>> for i128

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: SqlU256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<SqlUint<256, 4>> for i16

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: SqlU256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<SqlUint<256, 4>> for i32

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: SqlU256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<SqlUint<256, 4>> for i64

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: SqlU256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<SqlUint<256, 4>> for i8

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: SqlU256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<SqlUint<256, 4>> for isize

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: SqlU256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<SqlUint<256, 4>> for u128

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: SqlU256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<SqlUint<256, 4>> for u16

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: SqlU256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<SqlUint<256, 4>> for u32

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: SqlU256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<SqlUint<256, 4>> for u64

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: SqlU256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<SqlUint<256, 4>> for u8

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: SqlU256) -> Self::Output

Performs the * operation. Read more
Source§

impl Mul<SqlUint<256, 4>> for usize

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the * operator.
Source§

fn mul(self, rhs: SqlU256) -> Self::Output

Performs the * operation. Read more
Source§

impl MulAssign<&SqlUint<256, 4>> for SqlU256

Source§

fn mul_assign(&mut self, rhs: &Self)

Performs the *= operation. Read more
Source§

impl<const BITS: usize, const LIMBS: usize> Ord for SqlUint<BITS, LIMBS>

Source§

fn cmp(&self, other: &SqlUint<BITS, LIMBS>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq<SqlUint<256, 4>> for u128

Source§

fn eq(&self, other: &SqlU256) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<SqlUint<256, 4>> for u16

Source§

fn eq(&self, other: &SqlU256) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<SqlUint<256, 4>> for u32

Source§

fn eq(&self, other: &SqlU256) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<SqlUint<256, 4>> for u64

Source§

fn eq(&self, other: &SqlU256) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialEq<SqlUint<256, 4>> for u8

Source§

fn eq(&self, other: &SqlU256) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<const BITS: usize, const LIMBS: usize> PartialEq for SqlUint<BITS, LIMBS>

Source§

fn eq(&self, other: &SqlUint<BITS, LIMBS>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd<SqlUint<256, 4>> for u128

Source§

fn partial_cmp(&self, other: &SqlU256) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl PartialOrd<SqlUint<256, 4>> for u16

Source§

fn partial_cmp(&self, other: &SqlU256) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl PartialOrd<SqlUint<256, 4>> for u32

Source§

fn partial_cmp(&self, other: &SqlU256) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl PartialOrd<SqlUint<256, 4>> for u64

Source§

fn partial_cmp(&self, other: &SqlU256) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl PartialOrd<SqlUint<256, 4>> for u8

Source§

fn partial_cmp(&self, other: &SqlU256) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<const BITS: usize, const LIMBS: usize> PartialOrd for SqlUint<BITS, LIMBS>

Source§

fn partial_cmp(&self, other: &SqlUint<BITS, LIMBS>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Rem<&SqlUint<256, 4>> for &SqlU256

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: &SqlU256) -> Self::Output

Performs the % operation. Read more
Source§

impl Rem<&SqlUint<256, 4>> for SqlU256

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: &Self) -> Self::Output

Performs the % operation. Read more
Source§

impl Rem<SqlUint<256, 4>> for &SqlU256

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: SqlU256) -> Self::Output

Performs the % operation. Read more
Source§

impl Rem<SqlUint<256, 4>> for u128

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: SqlU256) -> Self::Output

Performs the % operation. Read more
Source§

impl Rem<SqlUint<256, 4>> for u16

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: SqlU256) -> Self::Output

Performs the % operation. Read more
Source§

impl Rem<SqlUint<256, 4>> for u32

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: SqlU256) -> Self::Output

Performs the % operation. Read more
Source§

impl Rem<SqlUint<256, 4>> for u64

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: SqlU256) -> Self::Output

Performs the % operation. Read more
Source§

impl Rem<SqlUint<256, 4>> for u8

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: SqlU256) -> Self::Output

Performs the % operation. Read more
Source§

impl Rem<SqlUint<256, 4>> for usize

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the % operator.
Source§

fn rem(self, rhs: SqlU256) -> Self::Output

Performs the % operation. Read more
Source§

impl RemAssign<&SqlUint<256, 4>> for SqlU256

Source§

fn rem_assign(&mut self, rhs: &Self)

Performs the %= operation. Read more
Source§

impl<const BITS: usize, const LIMBS: usize> Serialize for SqlUint<BITS, LIMBS>

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Sub<&SqlUint<256, 4>> for &SqlU256

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &SqlU256) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<&SqlUint<256, 4>> for SqlU256

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: &Self) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<SqlUint<256, 4>> for &SqlU256

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: SqlU256) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<SqlUint<256, 4>> for u128

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: SqlU256) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<SqlUint<256, 4>> for u16

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: SqlU256) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<SqlUint<256, 4>> for u32

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: SqlU256) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<SqlUint<256, 4>> for u64

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: SqlU256) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<SqlUint<256, 4>> for u8

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: SqlU256) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub<SqlUint<256, 4>> for usize

Source§

type Output = SqlUint<256, 4>

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: SqlU256) -> Self::Output

Performs the - operation. Read more
Source§

impl SubAssign<&SqlUint<256, 4>> for SqlU256

Source§

fn sub_assign(&mut self, rhs: &Self)

Performs the -= operation. Read more
Source§

impl TryFrom<SqlUint<256, 4>> for u128

Source§

type Error = &'static str

The type returned in the event of a conversion error.
Source§

fn try_from(value: SqlU256) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<SqlUint<256, 4>> for u16

Source§

type Error = &'static str

The type returned in the event of a conversion error.
Source§

fn try_from(value: SqlU256) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<SqlUint<256, 4>> for u32

Source§

type Error = &'static str

The type returned in the event of a conversion error.
Source§

fn try_from(value: SqlU256) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<SqlUint<256, 4>> for u64

Source§

type Error = &'static str

The type returned in the event of a conversion error.
Source§

fn try_from(value: SqlU256) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<SqlUint<256, 4>> for u8

Source§

type Error = &'static str

The type returned in the event of a conversion error.
Source§

fn try_from(value: SqlU256) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl TryFrom<SqlUint<256, 4>> for usize

Source§

type Error = &'static str

The type returned in the event of a conversion error.
Source§

fn try_from(value: SqlU256) -> Result<Self, Self::Error>

Performs the conversion.
Source§

impl<const BITS: usize, const LIMBS: usize, DB: Database> Type<DB> for SqlUint<BITS, LIMBS>
where String: Type<DB>,

Available on crate feature sqlx only.
Source§

fn type_info() -> DB::TypeInfo

Returns the canonical SQL type for this Rust type. Read more
Source§

fn compatible(ty: &DB::TypeInfo) -> bool

Determines if this Rust type is compatible with the given SQL type. Read more
Source§

impl<const BITS: usize, const LIMBS: usize> UpperHex for SqlUint<BITS, LIMBS>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<const BITS: usize, const LIMBS: usize> Copy for SqlUint<BITS, LIMBS>

Source§

impl<const BITS: usize, const LIMBS: usize> Eq for SqlUint<BITS, LIMBS>

Source§

impl<const BITS: usize, const LIMBS: usize> StructuralPartialEq for SqlUint<BITS, LIMBS>

Auto Trait Implementations§

§

impl<const BITS: usize, const LIMBS: usize> Freeze for SqlUint<BITS, LIMBS>

§

impl<const BITS: usize, const LIMBS: usize> RefUnwindSafe for SqlUint<BITS, LIMBS>

§

impl<const BITS: usize, const LIMBS: usize> Send for SqlUint<BITS, LIMBS>

§

impl<const BITS: usize, const LIMBS: usize> Sync for SqlUint<BITS, LIMBS>

§

impl<const BITS: usize, const LIMBS: usize> Unpin for SqlUint<BITS, LIMBS>

§

impl<const BITS: usize, const LIMBS: usize> UnwindSafe for SqlUint<BITS, LIMBS>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> ErasedDestructor for T
where T: 'static,