pub struct Range {
pub lower: BigInt,
pub upper: BigInt,
}
Expand description
A range of integers ([lower, upper)
).
Fields§
§lower: BigInt
The lower bound (Inclusive).
upper: BigInt
The upper bound (Exclusive).
Implementations§
source§impl Range
impl Range
sourcepub fn closed(lower: impl Into<BigInt>, upper: impl Into<BigInt>) -> Self
pub fn closed(lower: impl Into<BigInt>, upper: impl Into<BigInt>) -> Self
Creates a closed range i.e. [lower, upper]
.
sourcepub fn half_open(lower: impl Into<BigInt>, upper: impl Into<BigInt>) -> Self
pub fn half_open(lower: impl Into<BigInt>, upper: impl Into<BigInt>) -> Self
Creates a half-closed range i.e. [lower, upper)
.
sourcepub fn from_type_info(ty_info: &TypeInfo) -> Result<Self, SpecializationError>
pub fn from_type_info(ty_info: &TypeInfo) -> Result<Self, SpecializationError>
Returns the Range bounds from the given type info.
sourcepub fn from_type(
context: &dyn SignatureSpecializationContext,
ty: ConcreteTypeId,
) -> Result<Self, SpecializationError>
pub fn from_type( context: &dyn SignatureSpecializationContext, ty: ConcreteTypeId, ) -> Result<Self, SpecializationError>
Returns the Range bounds from the given type.
sourcepub fn is_small_range(&self) -> bool
pub fn is_small_range(&self) -> bool
Returns true if this range is smaller than the RangeCheck range.
sourcepub fn is_full_felt252_range(&self) -> bool
pub fn is_full_felt252_range(&self) -> bool
Returns true if this range can contain all possible values of a CASM cell.
sourcepub fn intersection(&self, other: &Self) -> Option<Self>
pub fn intersection(&self, other: &Self) -> Option<Self>
Returns the intersection of self
and other
.
If the intersection is empty, returns None
.
Trait Implementations§
impl Eq for Range
impl StructuralPartialEq for Range
Auto Trait Implementations§
impl Freeze for Range
impl RefUnwindSafe for Range
impl Send for Range
impl Sync for Range
impl Unpin for Range
impl UnwindSafe for Range
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
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)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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