pub struct Poseidon<E, const RATE: usize>where
E: Environment,{ /* private fields */ }
Trait Implementations§
Source§impl<E, const RATE: usize> HashToGroup for Poseidon<E, RATE>where
E: Environment,
impl<E, const RATE: usize> HashToGroup for Poseidon<E, RATE>where
E: Environment,
Source§impl<E, const RATE: usize> HashToScalar for Poseidon<E, RATE>where
E: Environment,
impl<E, const RATE: usize> HashToScalar for Poseidon<E, RATE>where
E: Environment,
Source§fn hash_to_scalar(
&self,
input: &[<Poseidon<E, RATE> as HashToScalar>::Input],
) -> <Poseidon<E, RATE> as HashToScalar>::Scalar
fn hash_to_scalar( &self, input: &[<Poseidon<E, RATE> as HashToScalar>::Input], ) -> <Poseidon<E, RATE> as HashToScalar>::Scalar
Returns a scalar from hashing the input. This method uses truncation (up to data bits) to project onto the scalar field.
type Input = Field<E>
type Scalar = Scalar<E>
Source§impl<E, const RATE: usize> Inject for Poseidon<E, RATE>where
E: Environment,
impl<E, const RATE: usize> Inject for Poseidon<E, RATE>where
E: Environment,
Source§impl<E, const RATE: usize> PathHash<E> for Poseidon<E, RATE>where
E: Environment,
impl<E, const RATE: usize> PathHash<E> for Poseidon<E, RATE>where
E: Environment,
Source§fn hash_children(
&self,
children: &[<Poseidon<E, RATE> as PathHash<E>>::Hash],
) -> <Poseidon<E, RATE> as PathHash<E>>::Hash
fn hash_children( &self, children: &[<Poseidon<E, RATE> as PathHash<E>>::Hash], ) -> <Poseidon<E, RATE> as PathHash<E>>::Hash
Returns the hash of the given child nodes.
type Hash = Field<E>
type Primitive = Poseidon<<E as Environment>::Network, RATE>
Source§fn hash_empty<const ARITY: u8>(&self) -> Self::Hash
fn hash_empty<const ARITY: u8>(&self) -> Self::Hash
Returns the empty hash.
Auto Trait Implementations§
impl<E, const RATE: usize> !Freeze for Poseidon<E, RATE>
impl<E, const RATE: usize> RefUnwindSafe for Poseidon<E, RATE>
impl<E, const RATE: usize> Send for Poseidon<E, RATE>
impl<E, const RATE: usize> !Sync for Poseidon<E, RATE>
impl<E, const RATE: usize> Unpin for Poseidon<E, RATE>
impl<E, const RATE: usize> UnwindSafe for Poseidon<E, RATE>
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<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