pub struct Scalar<E>where
E: Environment,{ /* private fields */ }
Implementations§
Source§impl<E> Scalar<E>where
E: Environment,
impl<E> Scalar<E>where
E: Environment,
Sourcepub fn from_field_lossy(field: &Field<E>) -> Scalar<E>
pub fn from_field_lossy(field: &Field<E>) -> Scalar<E>
Casts a scalar from a base field, with lossy truncation.
This method is commonly-used by hash-to-scalar algorithms, where the hash output does not need to preserve the full base field.
Source§impl<E> Scalar<E>where
E: Environment,
impl<E> Scalar<E>where
E: Environment,
Sourcepub const SIZE_IN_BITS: usize = <E::Scalar>::SIZE_IN_BITS
pub const SIZE_IN_BITS: usize = <E::Scalar>::SIZE_IN_BITS
The scalar size in bits.
Sourcepub const SIZE_IN_BYTES: usize = _
pub const SIZE_IN_BYTES: usize = _
The scalar size in bytes.
Sourcepub const SIZE_IN_DATA_BITS: usize = <E::Scalar>::SIZE_IN_DATA_BITS
pub const SIZE_IN_DATA_BITS: usize = <E::Scalar>::SIZE_IN_DATA_BITS
The scalar capacity for data bits.
Sourcepub const fn new(scalar: <E as Environment>::Scalar) -> Scalar<E>
pub const fn new(scalar: <E as Environment>::Scalar) -> Scalar<E>
Initializes a new scalar.
Trait Implementations§
Source§impl<E> Add for Scalar<E>where
E: Environment,
impl<E> Add for Scalar<E>where
E: Environment,
Source§impl<E> AddAssign<&Scalar<E>> for Scalar<E>where
E: Environment,
impl<E> AddAssign<&Scalar<E>> for Scalar<E>where
E: Environment,
Source§fn add_assign(&mut self, other: &Scalar<E>)
fn add_assign(&mut self, other: &Scalar<E>)
Adds other
to self
.
Source§impl<E> AddAssign for Scalar<E>where
E: Environment,
impl<E> AddAssign for Scalar<E>where
E: Environment,
Source§fn add_assign(&mut self, other: Scalar<E>)
fn add_assign(&mut self, other: Scalar<E>)
Adds other
to self
.
Source§impl<E> Compare for Scalar<E>where
E: Environment,
impl<E> Compare for Scalar<E>where
E: Environment,
Source§fn is_less_than(&self, other: &Scalar<E>) -> <Scalar<E> as Compare>::Output
fn is_less_than(&self, other: &Scalar<E>) -> <Scalar<E> as Compare>::Output
Returns true
if self
is less than other
.
Source§fn is_greater_than(&self, other: &Scalar<E>) -> <Scalar<E> as Compare>::Output
fn is_greater_than(&self, other: &Scalar<E>) -> <Scalar<E> as Compare>::Output
Returns true
if self
is greater than other
.
Source§fn is_less_than_or_equal(
&self,
other: &Scalar<E>,
) -> <Scalar<E> as Compare>::Output
fn is_less_than_or_equal( &self, other: &Scalar<E>, ) -> <Scalar<E> as Compare>::Output
Returns true
if self
is less than or equal to other
.
Source§fn is_greater_than_or_equal(
&self,
other: &Scalar<E>,
) -> <Scalar<E> as Compare>::Output
fn is_greater_than_or_equal( &self, other: &Scalar<E>, ) -> <Scalar<E> as Compare>::Output
Returns true
if self
is greater than or equal to other
.
type Output = Boolean<E>
Source§impl<E> Debug for Scalar<E>where
E: Environment,
impl<E> Debug for Scalar<E>where
E: Environment,
Source§impl<E> Deref for Scalar<E>where
E: Environment,
impl<E> Deref for Scalar<E>where
E: Environment,
Source§impl<'de, E> Deserialize<'de> for Scalar<E>where
E: Environment,
impl<'de, E> Deserialize<'de> for Scalar<E>where
E: Environment,
Source§fn deserialize<D>(
deserializer: D,
) -> Result<Scalar<E>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<Scalar<E>, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Deserializes the scalar from a string or bytes.
Source§impl<E> Display for Scalar<E>where
E: Environment,
impl<E> Display for Scalar<E>where
E: Environment,
Source§impl<E> Distribution<Scalar<E>> for Standardwhere
E: Environment,
impl<E> Distribution<Scalar<E>> for Standardwhere
E: Environment,
Source§impl<E> Div for Scalar<E>where
E: Environment,
impl<E> Div for Scalar<E>where
E: Environment,
Source§impl<E> DivAssign<&Scalar<E>> for Scalar<E>where
E: Environment,
impl<E> DivAssign<&Scalar<E>> for Scalar<E>where
E: Environment,
Source§fn div_assign(&mut self, other: &Scalar<E>)
fn div_assign(&mut self, other: &Scalar<E>)
Divides self
by other
.
Source§impl<E> DivAssign for Scalar<E>where
E: Environment,
impl<E> DivAssign for Scalar<E>where
E: Environment,
Source§fn div_assign(&mut self, other: Scalar<E>)
fn div_assign(&mut self, other: Scalar<E>)
Divides self
by other
.
Source§impl<E> Double for Scalar<E>where
E: Environment,
impl<E> Double for Scalar<E>where
E: Environment,
Source§impl<E> Equal for Scalar<E>where
E: Environment,
impl<E> Equal for Scalar<E>where
E: Environment,
Source§impl<E> FromBits for Scalar<E>where
E: Environment,
impl<E> FromBits for Scalar<E>where
E: Environment,
Source§fn from_bits_le(bits_le: &[bool]) -> Result<Scalar<E>, Error>
fn from_bits_le(bits_le: &[bool]) -> Result<Scalar<E>, Error>
Initializes a new scalar from a list of little-endian bits.
- If
bits_le
is longer thanE::Scalar::size_in_bits()
, the excess bits are enforced to be0
s. - If
bits_le
is shorter thanE::Scalar::size_in_bits()
, it is padded with0
s up to scalar size.
Source§impl<E> FromBytes for Scalar<E>where
E: Environment,
impl<E> FromBytes for Scalar<E>where
E: Environment,
Source§impl<E> FromField for Scalar<E>where
E: Environment,
impl<E> FromField for Scalar<E>where
E: Environment,
Source§fn from_field(
field: &<Scalar<E> as FromField>::Field,
) -> Result<Scalar<E>, Error>
fn from_field( field: &<Scalar<E> as FromField>::Field, ) -> Result<Scalar<E>, Error>
Casts a scalar from a base field element.
This method guarantees the following:
- If the field element is larger than the scalar field modulus, then the operation will fail.
- If the field element is smaller than the scalar field modulus, then the operation will succeed.
- This is particularly useful for the case where a user called,
Scalar::from_field(scalar.to_field())
, and the scalar bit representation is betweensize_in_data_bits < bits.len() < size_in_bits
.
- This is particularly useful for the case where a user called,
type Field = Field<E>
Source§impl<E> FromStr for Scalar<E>where
E: Environment,
impl<E> FromStr for Scalar<E>where
E: Environment,
Source§impl<E> Inverse for Scalar<E>where
E: Environment,
impl<E> Inverse for Scalar<E>where
E: Environment,
Source§impl<E> Mul for Scalar<E>where
E: Environment,
impl<E> Mul for Scalar<E>where
E: Environment,
Source§impl<E> MulAssign<&Scalar<E>> for Group<E>where
E: Environment,
impl<E> MulAssign<&Scalar<E>> for Group<E>where
E: Environment,
Source§fn mul_assign(&mut self, other: &Scalar<E>)
fn mul_assign(&mut self, other: &Scalar<E>)
Multiplies self
by other
.
Source§impl<E> MulAssign<&Scalar<E>> for Scalar<E>where
E: Environment,
impl<E> MulAssign<&Scalar<E>> for Scalar<E>where
E: Environment,
Source§fn mul_assign(&mut self, other: &Scalar<E>)
fn mul_assign(&mut self, other: &Scalar<E>)
Multiplies self
by other
.
Source§impl<E> MulAssign<Scalar<E>> for Group<E>where
E: Environment,
impl<E> MulAssign<Scalar<E>> for Group<E>where
E: Environment,
Source§fn mul_assign(&mut self, other: Scalar<E>)
fn mul_assign(&mut self, other: Scalar<E>)
Multiplies self
by other
.
Source§impl<E> MulAssign for Scalar<E>where
E: Environment,
impl<E> MulAssign for Scalar<E>where
E: Environment,
Source§fn mul_assign(&mut self, other: Scalar<E>)
fn mul_assign(&mut self, other: Scalar<E>)
Multiplies self
by other
.
Source§impl<E> Neg for Scalar<E>where
E: Environment,
impl<E> Neg for Scalar<E>where
E: Environment,
Source§impl<E> One for Scalar<E>where
E: Environment,
impl<E> One for Scalar<E>where
E: Environment,
Source§impl<E> Ord for Scalar<E>where
E: Environment,
impl<E> Ord for Scalar<E>where
E: Environment,
Source§fn cmp(&self, other: &Scalar<E>) -> Ordering
fn cmp(&self, other: &Scalar<E>) -> Ordering
Returns the lexicographic ordering of self
and other
.
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl<E> Parser for Scalar<E>where
E: Environment,
impl<E> Parser for Scalar<E>where
E: Environment,
Source§impl<E> PartialOrd for Scalar<E>where
E: Environment,
impl<E> PartialOrd for Scalar<E>where
E: Environment,
Source§impl<E> Product for Scalar<E>where
E: Environment,
impl<E> Product for Scalar<E>where
E: Environment,
Source§impl<E> Serialize for Scalar<E>where
E: Environment,
impl<E> Serialize for Scalar<E>where
E: Environment,
Source§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Serializes the scalar into a string or as bytes.
Source§impl<E> SizeInBits for Scalar<E>where
E: Environment,
impl<E> SizeInBits for Scalar<E>where
E: Environment,
Source§fn size_in_bits() -> usize
fn size_in_bits() -> usize
Returns the scalar size in bits.
Source§impl<E> SizeInBytes for Scalar<E>where
E: Environment,
impl<E> SizeInBytes for Scalar<E>where
E: Environment,
Source§fn size_in_bytes() -> usize
fn size_in_bytes() -> usize
Returns the scalar size in bytes.
Source§impl<E> SizeInDataBits for Scalar<E>where
E: Environment,
impl<E> SizeInDataBits for Scalar<E>where
E: Environment,
Source§fn size_in_data_bits() -> usize
fn size_in_data_bits() -> usize
Returns the scalar capacity for data bits.
Source§impl<E> Square for Scalar<E>where
E: Environment,
impl<E> Square for Scalar<E>where
E: Environment,
Source§impl<E> Sub for Scalar<E>where
E: Environment,
impl<E> Sub for Scalar<E>where
E: Environment,
Source§impl<E> SubAssign<&Scalar<E>> for Scalar<E>where
E: Environment,
impl<E> SubAssign<&Scalar<E>> for Scalar<E>where
E: Environment,
Source§fn sub_assign(&mut self, other: &Scalar<E>)
fn sub_assign(&mut self, other: &Scalar<E>)
Subtracts other
from self
.
Source§impl<E> SubAssign for Scalar<E>where
E: Environment,
impl<E> SubAssign for Scalar<E>where
E: Environment,
Source§fn sub_assign(&mut self, other: Scalar<E>)
fn sub_assign(&mut self, other: Scalar<E>)
Subtracts other
from self
.
Source§impl<E> Sum for Scalar<E>where
E: Environment,
impl<E> Sum for Scalar<E>where
E: Environment,
Source§impl<E> Ternary for Scalar<E>where
E: Environment,
impl<E> Ternary for Scalar<E>where
E: Environment,
Source§impl<E> ToBits for Scalar<E>where
E: Environment,
impl<E> ToBits for Scalar<E>where
E: Environment,
Source§fn write_bits_le(&self, vec: &mut Vec<bool>)
fn write_bits_le(&self, vec: &mut Vec<bool>)
Outputs the little-endian bit representation of self
without trailing zeros.
Source§fn write_bits_be(&self, vec: &mut Vec<bool>)
fn write_bits_be(&self, vec: &mut Vec<bool>)
Outputs the big-endian bit representation of self
without leading zeros.
Source§fn to_bits_le(&self) -> Vec<bool>
fn to_bits_le(&self) -> Vec<bool>
self
as a boolean array in little-endian order.Source§fn to_bits_be(&self) -> Vec<bool>
fn to_bits_be(&self) -> Vec<bool>
self
as a boolean array in big-endian order.Source§impl<E> ToBytes for Scalar<E>where
E: Environment,
impl<E> ToBytes for Scalar<E>where
E: Environment,
Source§impl<E> ToField for Scalar<E>where
E: Environment,
impl<E> ToField for Scalar<E>where
E: Environment,
Source§impl<E> TypeName for Scalar<E>where
E: Environment,
impl<E> TypeName for Scalar<E>where
E: Environment,
Source§impl<E> Zero for Scalar<E>where
E: Environment,
impl<E> Zero for Scalar<E>where
E: Environment,
Source§impl<E> Zeroize for Scalar<E>where
E: Environment,
impl<E> Zeroize for Scalar<E>where
E: Environment,
impl<E> Copy for Scalar<E>
impl<E> Eq for Scalar<E>
impl<E> GroupTrait<Scalar<E>> for Group<E>where
E: Environment,
impl<E> ScalarTrait for Scalar<E>where
E: Environment,
impl<E> StructuralPartialEq for Scalar<E>where
E: Environment,
Auto Trait Implementations§
impl<E> Freeze for Scalar<E>
impl<E> RefUnwindSafe for Scalar<E>
impl<E> Send for Scalar<E>
impl<E> Sync for Scalar<E>
impl<E> Unpin for Scalar<E>
impl<E> UnwindSafe for Scalar<E>
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<'de, T> DeserializeExt<'de> for Twhere
T: DeserializeOwned,
impl<'de, T> DeserializeExt<'de> for Twhere
T: DeserializeOwned,
fn take_from_value<D>(
value: &mut Value,
field: &str,
) -> Result<T, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
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
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> ⓘ
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> ⓘ
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