pub struct ShiftRight;
Expand description
Right-shift for 128-bit integers AKA right-shift for i128
.
§Behavior
BEFORE: _ arg3 arg2 arg1 arg0 shamt
AFTER: _ res3 res2 res1 res0
where res == arg >> shamt
as i128
s.
§Preconditions
arg
consists of 4u32
sshamt
is in[0:128)
§Postconditions
res
consists of 4u32
s
§Panics
- If preconditions are not met.
Implementations§
Source§impl ShiftRight
impl ShiftRight
pub const ARGUMENT_LIMB_3_NOT_U32_ERROR_ID: i128 = 323i128
pub const ARGUMENT_LIMB_2_NOT_U32_ERROR_ID: i128 = 322i128
pub const ARGUMENT_LIMB_1_NOT_U32_ERROR_ID: i128 = 321i128
pub const ARGUMENT_LIMB_0_NOT_U32_ERROR_ID: i128 = 320i128
pub const SHAMT_NOT_U32_ERROR_ID: i128 = 324i128
Trait Implementations§
Source§impl BasicSnippet for ShiftRight
impl BasicSnippet for ShiftRight
fn inputs(&self) -> Vec<(DataType, String)>
fn outputs(&self) -> Vec<(DataType, String)>
fn entrypoint(&self) -> String
fn code(&self, library: &mut Library) -> Vec<LabelledInstruction>
fn annotated_code(&self, library: &mut Library) -> Vec<LabelledInstruction>
fn link_for_isolated_run(&self) -> Vec<LabelledInstruction>
Source§fn init_stack_for_isolated_run(&self) -> Vec<BFieldElement>
fn init_stack_for_isolated_run(&self) -> Vec<BFieldElement>
Initial stack on program start, when the snippet runs in isolation.
fn stack_diff(&self) -> isize
Source§impl Clone for ShiftRight
impl Clone for ShiftRight
Source§fn clone(&self) -> ShiftRight
fn clone(&self) -> ShiftRight
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl Debug for ShiftRight
impl Debug for ShiftRight
Source§impl Hash for ShiftRight
impl Hash for ShiftRight
Source§impl PartialEq for ShiftRight
impl PartialEq for ShiftRight
impl Copy for ShiftRight
impl Eq for ShiftRight
impl StructuralPartialEq for ShiftRight
Auto Trait Implementations§
impl Freeze for ShiftRight
impl RefUnwindSafe for ShiftRight
impl Send for ShiftRight
impl Sync for ShiftRight
impl Unpin for ShiftRight
impl UnwindSafe for ShiftRight
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§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> 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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> SignedOffSnippet for Twhere
T: BasicSnippet + ?Sized,
impl<T> SignedOffSnippet for Twhere
T: BasicSnippet + ?Sized,
Source§fn fingerprint(&self) -> SignOffFingerprint
fn fingerprint(&self) -> SignOffFingerprint
The unique fingerprint as used for signing off on
this snippet.
Source§fn assert_all_sign_offs_are_up_to_date(&self)
fn assert_all_sign_offs_are_up_to_date(&self)
Panics if any sign-offs disagree with the actual
fingerprint.