Struct soroban_sdk::U256
source · pub struct U256 { /* private fields */ }
Expand description
U256 holds a 256-bit unsigned integer.
Examples
use soroban_sdk::{U256, Env};
let env = Env::default();
let u1 = U256::from_u32(&env, 6);
let u2 = U256::from_u32(&env, 3);
assert_eq!(u1.add(&u2), U256::from_u32(&env, 9));
Implementations§
source§impl U256
impl U256
pub fn from_u32(env: &Env, u: u32) -> Self
pub fn from_u128(env: &Env, u: u128) -> Self
pub fn from_parts( env: &Env, hi_hi: u64, hi_lo: u64, lo_hi: u64, lo_lo: u64 ) -> Self
pub fn from_be_bytes(env: &Env, bytes: &Bytes) -> Self
pub fn to_u128(&self) -> Option<u128>
pub fn to_be_bytes(&self) -> Bytes
pub fn add(&self, other: &U256) -> U256
pub fn sub(&self, other: &U256) -> U256
pub fn mul(&self, other: &U256) -> U256
pub fn div(&self, other: &U256) -> U256
pub fn rem_euclid(&self, other: &U256) -> U256
pub fn pow(&self, pow: u32) -> U256
pub fn shl(&self, bits: u32) -> U256
pub fn shr(&self, bits: u32) -> U256
Trait Implementations§
source§impl Ord for U256
impl Ord for U256
source§impl PartialEq for U256
impl PartialEq for U256
source§impl PartialOrd for U256
impl PartialOrd for U256
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self
and other
) and is used by the <=
operator. Read moresource§impl SorobanArbitrary for U256
Available on crate feature testutils
only.
impl SorobanArbitrary for U256
Available on crate feature
testutils
only.§type Prototype = ArbitraryU256
type Prototype = ArbitraryU256
A type that implements
Arbitrary
and can be converted to this
SorobanArbitrary
type.source§impl TryFrom<&U256> for ScVal
impl TryFrom<&U256> for ScVal
§type Error = ConversionError
type Error = ConversionError
The type returned in the event of a conversion error.
source§impl TryFrom<U256> for ScVal
impl TryFrom<U256> for ScVal
§type Error = ConversionError
type Error = ConversionError
The type returned in the event of a conversion error.
source§impl TryFromVal<Env, &U256> for Val
impl TryFromVal<Env, &U256> for Val
type Error = ConversionError
fn try_from_val(_env: &Env, v: &&U256) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, ScVal> for U256
impl TryFromVal<Env, ScVal> for U256
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, U256> for Val
impl TryFromVal<Env, U256> for Val
type Error = ConversionError
fn try_from_val(_env: &Env, v: &U256) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, U256Val> for U256
impl TryFromVal<Env, U256Val> for U256
type Error = Infallible
fn try_from_val(env: &Env, val: &U256Val) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, Val> for U256
impl TryFromVal<Env, Val> for U256
type Error = ConversionError
fn try_from_val(env: &Env, val: &Val) -> Result<Self, Self::Error>
impl Eq for U256
Auto Trait Implementations§
impl !RefUnwindSafe for U256
impl !Send for U256
impl !Sync for U256
impl Unpin for U256
impl !UnwindSafe for U256
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
Mutably borrows from an owned value. Read more
§impl<T, U, V, E, C> Compare<(T, U, V)> for Cwhere
C: Compare<T, Error = E, Error = E, Error = E> + Compare<U> + Compare<V>,
impl<T, U, V, E, C> Compare<(T, U, V)> for Cwhere
C: Compare<T, Error = E, Error = E, Error = E> + Compare<U> + Compare<V>,
§impl<T, U, V, W, E, C> Compare<(T, U, V, W)> for Cwhere
C: Compare<T, Error = E, Error = E, Error = E, Error = E> + Compare<U> + Compare<V> + Compare<W>,
impl<T, U, V, W, E, C> Compare<(T, U, V, W)> for Cwhere
C: Compare<T, Error = E, Error = E, Error = E, Error = E> + Compare<U> + Compare<V> + Compare<W>,
type Error = E
fn compare( &self, a: &(T, U, V, W), b: &(T, U, V, W) ) -> Result<Ordering, <C as Compare<(T, U, V, W)>>::Error>
§impl<T, U, V, W, X, E, C> Compare<(T, U, V, W, X)> for Cwhere
C: Compare<T, Error = E, Error = E, Error = E, Error = E, Error = E> + Compare<U> + Compare<V> + Compare<W> + Compare<X>,
impl<T, U, V, W, X, E, C> Compare<(T, U, V, W, X)> for Cwhere
C: Compare<T, Error = E, Error = E, Error = E, Error = E, Error = E> + Compare<U> + Compare<V> + Compare<W> + Compare<X>,
type Error = E
fn compare( &self, a: &(T, U, V, W, X), b: &(T, U, V, W, X) ) -> Result<Ordering, <C as Compare<(T, U, V, W, X)>>::Error>
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.