#[repr(C)]pub struct i256 {
low: u128,
high: i128,
}
Expand description
A signed 256-bit integer
Fields§
§low: u128
§high: i128
Implementations§
Source§impl i256
impl i256
Sourcepub const fn from_le_bytes(b: [u8; 32]) -> Self
pub const fn from_le_bytes(b: [u8; 32]) -> Self
Create an integer value from its representation as a byte array in little-endian.
Sourcepub const fn from_be_bytes(b: [u8; 32]) -> Self
pub const fn from_be_bytes(b: [u8; 32]) -> Self
Create an integer value from its representation as a byte array in big-endian.
Sourcepub fn from_string(value_str: &str) -> Option<Self>
pub fn from_string(value_str: &str) -> Option<Self>
Create an integer value from its representation as string.
Sourcepub fn from_f64(v: f64) -> Option<Self>
pub fn from_f64(v: f64) -> Option<Self>
Create an optional i256 from the provided f64
. Returning None
if overflow occurred
Sourcepub const fn from_parts(low: u128, high: i128) -> Self
pub const fn from_parts(low: u128, high: i128) -> Self
Create an i256 from the provided low u128 and high i128
Sourcepub fn to_i128(self) -> Option<i128>
pub fn to_i128(self) -> Option<i128>
Converts this i256
into an i128
returning None
if this would result
in truncation/overflow
Sourcepub const fn to_le_bytes(self) -> [u8; 32]
pub const fn to_le_bytes(self) -> [u8; 32]
Return the memory representation of this integer as a byte array in little-endian byte order.
Sourcepub const fn to_be_bytes(self) -> [u8; 32]
pub const fn to_be_bytes(self) -> [u8; 32]
Return the memory representation of this integer as a byte array in big-endian byte order.
Sourcefn from_bigint_with_overflow(v: BigInt) -> (Self, bool)
fn from_bigint_with_overflow(v: BigInt) -> (Self, bool)
Create an i256 from the provided BigInt
returning a bool indicating
if overflow occurred
Sourcepub fn wrapping_abs(self) -> Self
pub fn wrapping_abs(self) -> Self
Computes the absolute value of this i256
Sourcepub fn checked_abs(self) -> Option<Self>
pub fn checked_abs(self) -> Option<Self>
Computes the absolute value of this i256 returning None
if Self == Self::MIN
Sourcepub fn wrapping_neg(self) -> Self
pub fn wrapping_neg(self) -> Self
Negates this i256
Sourcepub fn checked_neg(self) -> Option<Self>
pub fn checked_neg(self) -> Option<Self>
Negates this i256 returning None
if Self == Self::MIN
Sourcepub fn wrapping_add(self, other: Self) -> Self
pub fn wrapping_add(self, other: Self) -> Self
Performs wrapping addition
Sourcepub fn checked_add(self, other: Self) -> Option<Self>
pub fn checked_add(self, other: Self) -> Option<Self>
Performs checked addition
Sourcepub fn wrapping_sub(self, other: Self) -> Self
pub fn wrapping_sub(self, other: Self) -> Self
Performs wrapping subtraction
Sourcepub fn checked_sub(self, other: Self) -> Option<Self>
pub fn checked_sub(self, other: Self) -> Option<Self>
Performs checked subtraction
Sourcepub fn wrapping_mul(self, other: Self) -> Self
pub fn wrapping_mul(self, other: Self) -> Self
Performs wrapping multiplication
Sourcepub fn checked_mul(self, other: Self) -> Option<Self>
pub fn checked_mul(self, other: Self) -> Option<Self>
Performs checked multiplication
Sourcefn div_rem(self, other: Self) -> Result<(Self, Self), DivRemError>
fn div_rem(self, other: Self) -> Result<(Self, Self), DivRemError>
Division operation, returns (quotient, remainder).
This basically implements [Long division]: <https://en.wikipedia.org/wiki/Division_algorithm>
Sourcefn from_digits(digits: [u64; 4]) -> Self
fn from_digits(digits: [u64; 4]) -> Self
Interpret 4 u64
digits, least significant first, as a i256
Sourcepub fn wrapping_div(self, other: Self) -> Self
pub fn wrapping_div(self, other: Self) -> Self
Performs wrapping division
Sourcepub fn checked_div(self, other: Self) -> Option<Self>
pub fn checked_div(self, other: Self) -> Option<Self>
Performs checked division
Sourcepub fn wrapping_rem(self, other: Self) -> Self
pub fn wrapping_rem(self, other: Self) -> Self
Performs wrapping remainder
Sourcepub fn checked_rem(self, other: Self) -> Option<Self>
pub fn checked_rem(self, other: Self) -> Option<Self>
Performs checked remainder
Sourcepub fn checked_pow(self, exp: u32) -> Option<Self>
pub fn checked_pow(self, exp: u32) -> Option<Self>
Performs checked exponentiation
Sourcepub fn wrapping_pow(self, exp: u32) -> Self
pub fn wrapping_pow(self, exp: u32) -> Self
Performs wrapping exponentiation
Sourcepub const fn is_negative(self) -> bool
pub const fn is_negative(self) -> bool
Returns true
if this i256
is negative
Sourcepub const fn is_positive(self) -> bool
pub const fn is_positive(self) -> bool
Returns true
if this i256
is positive
Trait Implementations§
Source§impl AddAssign for i256
impl AddAssign for i256
Source§fn add_assign(&mut self, rhs: Self)
fn add_assign(&mut self, rhs: Self)
+=
operation. Read moreSource§impl ArrowNativeType for i256
impl ArrowNativeType for i256
Source§fn get_byte_width() -> usize
fn get_byte_width() -> usize
Source§fn from_i32(_: i32) -> Option<Self>
fn from_i32(_: i32) -> Option<Self>
Option::Some
insteadSource§impl AsPrimitive<i256> for i16
impl AsPrimitive<i256> for i16
Source§impl AsPrimitive<i256> for i32
impl AsPrimitive<i256> for i32
Source§impl AsPrimitive<i256> for i64
impl AsPrimitive<i256> for i64
Source§impl AsPrimitive<i256> for i8
impl AsPrimitive<i256> for i8
Source§impl AsPrimitive<i256> for u16
impl AsPrimitive<i256> for u16
Source§impl AsPrimitive<i256> for u32
impl AsPrimitive<i256> for u32
Source§impl AsPrimitive<i256> for u64
impl AsPrimitive<i256> for u64
Source§impl AsPrimitive<i256> for u8
impl AsPrimitive<i256> for u8
Source§impl DivAssign for i256
impl DivAssign for i256
Source§fn div_assign(&mut self, rhs: Self)
fn div_assign(&mut self, rhs: Self)
/=
operation. Read moreSource§impl MulAssign for i256
impl MulAssign for i256
Source§fn mul_assign(&mut self, rhs: Self)
fn mul_assign(&mut self, rhs: Self)
*=
operation. Read moreSource§impl Ord for i256
impl Ord for i256
Source§impl PartialOrd for i256
impl PartialOrd for i256
Source§impl RemAssign for i256
impl RemAssign for i256
Source§fn rem_assign(&mut self, rhs: Self)
fn rem_assign(&mut self, rhs: Self)
%=
operation. Read moreSource§impl SubAssign for i256
impl SubAssign for i256
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
-=
operation. Read moreSource§impl ToPrimitive for i256
impl ToPrimitive for i256
Source§fn to_i64(&self) -> Option<i64>
fn to_i64(&self) -> Option<i64>
self
to an i64
. If the value cannot be
represented by an i64
, then None
is returned.Source§fn to_u64(&self) -> Option<u64>
fn to_u64(&self) -> Option<u64>
self
to a u64
. If the value cannot be
represented by a u64
, then None
is returned.Source§fn to_isize(&self) -> Option<isize>
fn to_isize(&self) -> Option<isize>
self
to an isize
. If the value cannot be
represented by an isize
, then None
is returned.Source§fn to_i8(&self) -> Option<i8>
fn to_i8(&self) -> Option<i8>
self
to an i8
. If the value cannot be
represented by an i8
, then None
is returned.Source§fn to_i16(&self) -> Option<i16>
fn to_i16(&self) -> Option<i16>
self
to an i16
. If the value cannot be
represented by an i16
, then None
is returned.Source§fn to_i32(&self) -> Option<i32>
fn to_i32(&self) -> Option<i32>
self
to an i32
. If the value cannot be
represented by an i32
, then None
is returned.Source§fn to_i128(&self) -> Option<i128>
fn to_i128(&self) -> Option<i128>
self
to an i128
. If the value cannot be
represented by an i128
(i64
under the default implementation), then
None
is returned. Read moreSource§fn to_usize(&self) -> Option<usize>
fn to_usize(&self) -> Option<usize>
self
to a usize
. If the value cannot be
represented by a usize
, then None
is returned.Source§fn to_u8(&self) -> Option<u8>
fn to_u8(&self) -> Option<u8>
self
to a u8
. If the value cannot be
represented by a u8
, then None
is returned.Source§fn to_u16(&self) -> Option<u16>
fn to_u16(&self) -> Option<u16>
self
to a u16
. If the value cannot be
represented by a u16
, then None
is returned.Source§fn to_u32(&self) -> Option<u32>
fn to_u32(&self) -> Option<u32>
self
to a u32
. If the value cannot be
represented by a u32
, then None
is returned.Source§fn to_u128(&self) -> Option<u128>
fn to_u128(&self) -> Option<u128>
self
to a u128
. If the value cannot be
represented by a u128
(u64
under the default implementation), then
None
is returned. Read moreimpl Copy for i256
impl Eq for i256
impl Sealed for i256
impl StructuralPartialEq for i256
Auto Trait Implementations§
impl Freeze for i256
impl RefUnwindSafe for i256
impl Send for i256
impl Sync for i256
impl Unpin for i256
impl UnwindSafe for i256
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)