Struct equix::EquiXBuilder

source ·
pub struct EquiXBuilder { /* private fields */ }
Expand description

Builder for creating EquiX instances with custom settings

Implementations§

source§

impl EquiXBuilder

source

pub fn new() -> Self

Create a new EquiXBuilder with default settings.

Immediately calling Self::build() would be equivalent to using EquiX::new().

source

pub fn runtime(&mut self, runtime: RuntimeOption) -> &mut Self

Select a new RuntimeOption.

source

pub fn build(&self, challenge: &[u8]) -> Result<EquiX, Error>

Build an EquiX instance with a challenge string and the selected options.

It’s normal for this to fail with a HashError::ProgramConstraints for a small fraction of challenge values. Those challenges must be skipped by solvers and rejected by verifiers.

source

pub fn solve(&self, challenge: &[u8]) -> Result<SolutionArray, Error>

Search for solutions to a particular challenge.

Each solve invocation returns zero or more solutions. Memory for the solver is allocated dynamically and not reused.

It’s normal for this to fail with a HashError::ProgramConstraints for a small fraction of challenge values. Those challenges must be skipped by solvers and rejected by verifiers.

source

pub fn verify(&self, challenge: &[u8], solution: &Solution) -> Result<(), Error>

Check a Solution against a particular challenge string.

Having a Solution instance guarantees that the order of items has already been checked. This only needs to check hash tree sums. Returns either Ok or Error::HashSum.

source

pub fn verify_array( &self, challenge: &[u8], array: &SolutionItemArray, ) -> Result<(), Error>

Check a SolutionItemArray.

Returns an error if the array is not a well formed Solution or it’s not suitable for the given challenge.

source

pub fn verify_bytes( &self, challenge: &[u8], array: &SolutionByteArray, ) -> Result<(), Error>

Check a SolutionByteArray.

Returns an error if the array is not a well formed Solution or it’s not suitable for the given challenge.

Trait Implementations§

source§

impl Clone for EquiXBuilder

source§

fn clone(&self) -> EquiXBuilder

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for EquiXBuilder

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for EquiXBuilder

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl PartialEq for EquiXBuilder

source§

fn eq(&self, other: &EquiXBuilder) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Eq for EquiXBuilder

source§

impl StructuralPartialEq for EquiXBuilder

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> Same for T

§

type Output = T

Should always be Self
source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.