Struct hacspec_lib::prelude::I8
source · [−]pub struct I8(pub i8);
Tuple Fields
0: i8
Implementations
sourceimpl I8
impl I8
pub fn classify<T>(x: T) -> I8 where
T: Into<i8>,
sourcepub fn declassify(self) -> i8
pub fn declassify(self) -> i8
Warning: use with caution, breaks the constant-time guarantee.
pub fn zero() -> I8
pub fn one() -> I8
pub fn ones() -> I8
pub fn from_le_bytes(bytes: &[U8]) -> Vec<I8, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
pub fn to_le_bytes(ints: &[I8]) -> Vec<U8, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
pub fn from_be_bytes(bytes: &[U8]) -> Vec<I8, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
pub fn to_be_bytes(ints: &[I8]) -> Vec<U8, Global>ⓘNotable traits for Vec<u8, A>impl<A> Write for Vec<u8, A> where
A: Allocator,
A: Allocator,
pub fn max_value() -> I8
sourceimpl I8
impl I8
pub fn rotate_left(self, rotval: usize) -> I8
pub fn rotate_right(self, rotval: usize) -> I8
sourceimpl I8
impl I8
pub fn comp_eq(self, rhs: I8) -> I8
sourcepub fn comp_ne(self, rhs: I8) -> I8
pub fn comp_ne(self, rhs: I8) -> I8
Produces a new integer which is all ones if the first argument is different from the second argument, and all zeroes otherwise.
sourcepub fn comp_gte(self, rhs: I8) -> I8
pub fn comp_gte(self, rhs: I8) -> I8
Produces a new integer which is all ones if the first argument is greater than or equal to the second argument, and all zeroes otherwise. With inspiration from
sourcepub fn comp_gt(self, rhs: I8) -> I8
pub fn comp_gt(self, rhs: I8) -> I8
Produces a new integer which is all ones if the first argument is strictly greater than the second argument, and all zeroes otherwise.
Trait Implementations
sourceimpl AddAssign<I8> for I8
impl AddAssign<I8> for I8
Warning: has wrapping semantics.
sourcefn add_assign(&mut self, rhs: I8)
fn add_assign(&mut self, rhs: I8)
Performs the +=
operation. Read more
sourceimpl BitAndAssign<I8> for I8
impl BitAndAssign<I8> for I8
sourcefn bitand_assign(&mut self, rhs: I8)
fn bitand_assign(&mut self, rhs: I8)
Performs the &=
operation. Read more
sourceimpl BitOrAssign<I8> for I8
impl BitOrAssign<I8> for I8
sourcefn bitor_assign(&mut self, rhs: I8)
fn bitor_assign(&mut self, rhs: I8)
Performs the |=
operation. Read more
sourceimpl BitXorAssign<I8> for I8
impl BitXorAssign<I8> for I8
sourcefn bitxor_assign(&mut self, rhs: I8)
fn bitxor_assign(&mut self, rhs: I8)
Performs the ^=
operation. Read more
sourceimpl Integer for I8
impl Integer for I8
sourcefn ZERO() -> Self
fn ZERO() -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
sourcefn ONE() -> Self
fn ONE() -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
sourcefn TWO() -> Self
fn TWO() -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
sourcefn from_literal(val: u128) -> Self
fn from_literal(val: u128) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
sourcefn from_hex_string(s: &String) -> Self
fn from_hex_string(s: &String) -> Self
This function can be called from hacspec programs but its body features Rust constructs that are not part of hacspec
sourcefn get_bit(self, i: usize) -> Self
fn get_bit(self, i: usize) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and
call functions whose signatures are in hacspec.
Get bit i
of this integer.
sourcefn set_bit(self, b: Self, i: usize) -> Self
fn set_bit(self, b: Self, i: usize) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and
call functions whose signatures are in hacspec.
Set bit i
of this integer to b
and return the result.
Bit b
has to be 0
or 1
.
sourcefn set(self, pos: usize, y: Self, yi: usize) -> Self
fn set(self, pos: usize, y: Self, yi: usize) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and
call functions whose signatures are in hacspec.
Set bit pos
of this integer to bit yi
of integer y
.
sourcefn rotate_left(self, n: usize) -> Self
fn rotate_left(self, n: usize) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
sourcefn rotate_right(self, n: usize) -> Self
fn rotate_right(self, n: usize) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
const NUM_BITS: usize = 8usize
sourceimpl ModNumeric for I8
impl ModNumeric for I8
sourcefn sub_mod(self, rhs: Self, n: Self) -> Self
fn sub_mod(self, rhs: Self, n: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec. (self - rhs) % n.
sourcefn add_mod(self, rhs: Self, n: Self) -> Self
fn add_mod(self, rhs: Self, n: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and
call functions whose signatures are in hacspec.
(self + rhs) % n
sourcefn mul_mod(self, rhs: Self, n: Self) -> Self
fn mul_mod(self, rhs: Self, n: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and
call functions whose signatures are in hacspec.
(self * rhs) % n
sourcefn pow_mod(self, _exp: Self, _n: Self) -> Self
fn pow_mod(self, _exp: Self, _n: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and
call functions whose signatures are in hacspec.
(self ^ exp) % n
TODO: implement
sourcefn modulo(self, n: Self) -> Self
fn modulo(self, n: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and
call functions whose signatures are in hacspec.
self % n
sourcefn signed_modulo(self, n: Self) -> Self
fn signed_modulo(self, n: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and
call functions whose signatures are in hacspec.
self % n
that always returns a positive integer
FIXME: not ct!
sourceimpl MulAssign<I8> for I8
impl MulAssign<I8> for I8
Warning: has wrapping semantics.
sourcefn mul_assign(&mut self, rhs: I8)
fn mul_assign(&mut self, rhs: I8)
Performs the *=
operation. Read more
sourceimpl Numeric for I8
impl Numeric for I8
sourcefn max_val() -> Self
fn max_val() -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec. Return largest value that can be represented.
sourcefn wrap_add(self, rhs: Self) -> Self
fn wrap_add(self, rhs: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
sourcefn wrap_sub(self, rhs: Self) -> Self
fn wrap_sub(self, rhs: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
sourcefn wrap_mul(self, rhs: Self) -> Self
fn wrap_mul(self, rhs: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
sourcefn wrap_div(self, _rhs: Self) -> Self
fn wrap_div(self, _rhs: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
sourcefn exp(self, exp: u32) -> Self
fn exp(self, exp: u32) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and
call functions whose signatures are in hacspec.
self ^ exp
where exp
is a u32
.
Note: the exponent exp
MUST NOT be secret.
sourcefn pow_self(self, _exp: Self) -> Self
fn pow_self(self, _exp: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and
call functions whose signatures are in hacspec.
self ^ exp
where exp
is a Self
.
Here both, base and exponent, are secret.
TODO: implement
sourcefn divide(self, rhs: Self) -> Self
fn divide(self, rhs: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec. Division.
sourcefn inv(self, n: Self) -> Self
fn inv(self, n: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec. Invert self modulo n. FIXME: make ct
sourcefn equal(self, other: Self) -> bool
fn equal(self, other: Self) -> bool
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec. Declassifies
sourcefn greater_than(self, other: Self) -> bool
fn greater_than(self, other: Self) -> bool
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec. Declassifies
sourcefn greater_than_or_equal(self, other: Self) -> bool
fn greater_than_or_equal(self, other: Self) -> bool
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec. Declassifies
sourcefn less_than(self, other: Self) -> bool
fn less_than(self, other: Self) -> bool
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec. Declassifies
sourcefn less_than_or_equal(self, other: Self) -> bool
fn less_than_or_equal(self, other: Self) -> bool
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec. Declassifies
sourcefn not_equal_bm(self, other: Self) -> Self
fn not_equal_bm(self, other: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
sourcefn equal_bm(self, other: Self) -> Self
fn equal_bm(self, other: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
sourcefn greater_than_bm(self, other: Self) -> Self
fn greater_than_bm(self, other: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
sourcefn greater_than_or_equal_bm(self, other: Self) -> Self
fn greater_than_or_equal_bm(self, other: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
sourcefn less_than_bm(self, other: Self) -> Self
fn less_than_bm(self, other: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
sourcefn less_than_or_equal_bm(self, other: Self) -> Self
fn less_than_or_equal_bm(self, other: Self) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
sourceimpl SecretInteger for I8
impl SecretInteger for I8
sourcefn classify(x: Self::PublicVersion) -> Self
fn classify(x: Self::PublicVersion) -> Self
This function is within the hacspec subset of Rust: its signature and body use only hacspec constructs and call functions whose signatures are in hacspec.
type PublicVersion = i8
sourceimpl SecretIntegerCopy for I8
impl SecretIntegerCopy for I8
type PublicVersionCopy = i8
fn classify(x: Self::PublicVersionCopy) -> Self
sourceimpl ShlAssign<usize> for I8
impl ShlAssign<usize> for I8
sourcefn shl_assign(&mut self, rhs: usize)
fn shl_assign(&mut self, rhs: usize)
Performs the <<=
operation. Read more
sourceimpl ShrAssign<usize> for I8
impl ShrAssign<usize> for I8
sourcefn shr_assign(&mut self, rhs: usize)
fn shr_assign(&mut self, rhs: usize)
Performs the >>=
operation. Read more
sourceimpl SubAssign<I8> for I8
impl SubAssign<I8> for I8
Warning: has wrapping semantics.
sourcefn sub_assign(&mut self, rhs: I8)
fn sub_assign(&mut self, rhs: I8)
Performs the -=
operation. Read more
impl Copy for I8
impl NumericCopy for I8
impl SignedInteger for I8
impl SignedIntegerCopy for I8
Auto Trait Implementations
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more