Struct soroban_sdk::I256
source · pub struct I256 { /* private fields */ }
Expand description
I256 holds a 256-bit signed integer.
Examples
use soroban_sdk::{I256, Env};
let env = Env::default();
let i1 = I256::from_i32(&env, -6);
let i2 = I256::from_i32(&env, 3);
assert_eq!(i1.add(&i2), I256::from_i32(&env, -3));
Implementations§
source§impl I256
impl I256
pub fn from_i32(env: &Env, i: i32) -> Self
pub fn from_i128(env: &Env, i: i128) -> Self
pub fn from_parts( env: &Env, hi_hi: i64, hi_lo: u64, lo_hi: u64, lo_lo: u64 ) -> Self
pub fn from_be_bytes(env: &Env, bytes: &Bytes) -> Self
pub fn to_i128(&self) -> Option<i128>
pub fn to_be_bytes(&self) -> Bytes
pub fn add(&self, other: &I256) -> I256
pub fn sub(&self, other: &I256) -> I256
pub fn mul(&self, other: &I256) -> I256
pub fn div(&self, other: &I256) -> I256
pub fn rem_euclid(&self, other: &I256) -> I256
pub fn pow(&self, pow: u32) -> I256
pub fn shl(&self, bits: u32) -> I256
pub fn shr(&self, bits: u32) -> I256
Trait Implementations§
source§impl Ord for I256
impl Ord for I256
source§impl PartialEq for I256
impl PartialEq for I256
source§impl PartialOrd for I256
impl PartialOrd for I256
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 I256
Available on crate feature testutils
only.
impl SorobanArbitrary for I256
Available on crate feature
testutils
only.§type Prototype = ArbitraryI256
type Prototype = ArbitraryI256
A type that implements
Arbitrary
and can be converted to this
SorobanArbitrary
type.source§impl TryFrom<&I256> for ScVal
impl TryFrom<&I256> for ScVal
§type Error = ConversionError
type Error = ConversionError
The type returned in the event of a conversion error.
source§impl TryFrom<I256> for ScVal
impl TryFrom<I256> for ScVal
§type Error = ConversionError
type Error = ConversionError
The type returned in the event of a conversion error.
source§impl TryFromVal<Env, &I256> for Val
impl TryFromVal<Env, &I256> for Val
type Error = ConversionError
fn try_from_val(_env: &Env, v: &&I256) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, I256> for Val
impl TryFromVal<Env, I256> for Val
type Error = ConversionError
fn try_from_val(_env: &Env, v: &I256) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, I256Val> for I256
impl TryFromVal<Env, I256Val> for I256
type Error = Infallible
fn try_from_val(env: &Env, val: &I256Val) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, ScVal> for I256
impl TryFromVal<Env, ScVal> for I256
type Error = ConversionError
fn try_from_val(env: &Env, val: &ScVal) -> Result<Self, Self::Error>
source§impl TryFromVal<Env, Val> for I256
impl TryFromVal<Env, Val> for I256
type Error = ConversionError
fn try_from_val(env: &Env, val: &Val) -> Result<Self, Self::Error>
impl Eq for I256
Auto Trait Implementations§
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
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.