pub struct CoinbaseSolution<N>
where N: Network,
{ /* private fields */ }
Expand description

The coinbase puzzle solution is composed of individual prover solutions.

Implementations§

§

impl<N> CoinbaseSolution<N>
where N: Network,

pub fn new( solutions: Vec<ProverSolution<N>> ) -> Result<CoinbaseSolution<N>, Error>

Initializes a new instance of the solutions.

pub fn puzzle_commitments(&self) -> impl Iterator<Item = &PuzzleCommitment<N>>

Returns the puzzle commitments.

pub fn len(&self) -> usize

Returns the number of solutions.

pub fn is_empty(&self) -> bool

Returns true if there are no solutions.

pub fn get_solution( &self, puzzle_commitment: &PuzzleCommitment<N> ) -> Option<&ProverSolution<N>>

Returns the prover solution for the puzzle commitment.

pub fn to_combined_proof_target(&self) -> Result<u128, Error>

Returns the combined sum of the prover solutions.

pub fn to_accumulator_point(&self) -> Result<Field<N>, Error>

Returns the accumulator challenge point.

Methods from Deref<Target = IndexMap<PuzzleCommitment<N>, ProverSolution<N>>>§

source

pub fn capacity(&self) -> usize

Return the number of elements the map can hold without reallocating.

This number is a lower bound; the map might be able to hold more, but is guaranteed to be able to hold at least this many.

Computes in O(1) time.

source

pub fn hasher(&self) -> &S

Return a reference to the map’s BuildHasher.

source

pub fn len(&self) -> usize

Return the number of key-value pairs in the map.

Computes in O(1) time.

source

pub fn is_empty(&self) -> bool

Returns true if the map contains no elements.

Computes in O(1) time.

source

pub fn iter(&self) -> Iter<'_, K, V>

Return an iterator over the key-value pairs of the map, in their order

source

pub fn keys(&self) -> Keys<'_, K, V>

Return an iterator over the keys of the map, in their order

source

pub fn values(&self) -> Values<'_, K, V>

Return an iterator over the values of the map, in their order

source

pub fn contains_key<Q>(&self, key: &Q) -> bool
where Q: Hash + Equivalent<K> + ?Sized,

Return true if an equivalent to key exists in the map.

Computes in O(1) time (average).

source

pub fn get<Q>(&self, key: &Q) -> Option<&V>
where Q: Hash + Equivalent<K> + ?Sized,

Return a reference to the value stored for key, if it is present, else None.

Computes in O(1) time (average).

source

pub fn get_key_value<Q>(&self, key: &Q) -> Option<(&K, &V)>
where Q: Hash + Equivalent<K> + ?Sized,

Return references to the key-value pair stored for key, if it is present, else None.

Computes in O(1) time (average).

source

pub fn get_full<Q>(&self, key: &Q) -> Option<(usize, &K, &V)>
where Q: Hash + Equivalent<K> + ?Sized,

Return item index, key and value

source

pub fn get_index_of<Q>(&self, key: &Q) -> Option<usize>
where Q: Hash + Equivalent<K> + ?Sized,

Return item index, if it exists in the map

Computes in O(1) time (average).

source

pub fn as_slice(&self) -> &Slice<K, V>

Returns a slice of all the key-value pairs in the map.

Computes in O(1) time.

source

pub fn get_index(&self, index: usize) -> Option<(&K, &V)>

Get a key-value pair by index

Valid indices are 0 <= index < self.len()

Computes in O(1) time.

source

pub fn get_range<R>(&self, range: R) -> Option<&Slice<K, V>>
where R: RangeBounds<usize>,

Returns a slice of key-value pairs in the given range of indices.

Valid indices are 0 <= index < self.len()

Computes in O(1) time.

source

pub fn first(&self) -> Option<(&K, &V)>

Get the first key-value pair

Computes in O(1) time.

source

pub fn last(&self) -> Option<(&K, &V)>

Get the last key-value pair

Computes in O(1) time.

source

pub fn par_keys(&self) -> ParKeys<'_, K, V>

Return a parallel iterator over the keys of the map.

While parallel iterators can process items in any order, their relative order in the map is still preserved for operations like reduce and collect.

source

pub fn par_values(&self) -> ParValues<'_, K, V>

Return a parallel iterator over the values of the map.

While parallel iterators can process items in any order, their relative order in the map is still preserved for operations like reduce and collect.

source

pub fn par_eq<V2, S2>(&self, other: &IndexMap<K, V2, S2>) -> bool
where V: PartialEq<V2>, V2: Sync, S2: BuildHasher + Sync,

Returns true if self contains all of the same key-value pairs as other, regardless of each map’s indexed order, determined in parallel.

Trait Implementations§

§

impl<N> Clone for CoinbaseSolution<N>
where N: Clone + Network,

§

fn clone(&self) -> CoinbaseSolution<N>

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
§

impl<N> Debug for CoinbaseSolution<N>
where N: Network,

§

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

Prints the solutions as a JSON-string.

§

impl<N> Deref for CoinbaseSolution<N>
where N: Network,

§

type Target = IndexMap<PuzzleCommitment<N>, ProverSolution<N>>

The resulting type after dereferencing.
§

fn deref(&self) -> &<CoinbaseSolution<N> as Deref>::Target

Dereferences the value.
§

impl<'de, N> Deserialize<'de> for CoinbaseSolution<N>
where N: Network,

§

fn deserialize<D>( deserializer: D ) -> Result<CoinbaseSolution<N>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserializes the solutions from a JSON-string or buffer.

§

impl<N> Display for CoinbaseSolution<N>
where N: Network,

§

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

Displays the solutions as a JSON-string.

§

impl<N> FromBytes for CoinbaseSolution<N>
where N: Network,

§

fn read_le<R>(reader: R) -> Result<CoinbaseSolution<N>, Error>
where R: Read,

Reads the solutions from the buffer.

source§

fn from_bytes_le(bytes: &[u8]) -> Result<Self, Error>
where Self: Sized,

Returns Self from a byte array in little-endian order.
§

impl<N> FromStr for CoinbaseSolution<N>
where N: Network,

§

fn from_str( solutions: &str ) -> Result<CoinbaseSolution<N>, <CoinbaseSolution<N> as FromStr>::Err>

Initializes the solutions from a JSON-string.

§

type Err = Error

The associated error which can be returned from parsing.
§

impl<N> PartialEq for CoinbaseSolution<N>
where N: PartialEq + Network,

§

fn eq(&self, other: &CoinbaseSolution<N>) -> 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.
§

impl<N> Serialize for CoinbaseSolution<N>
where N: Network,

§

fn serialize<S>( &self, serializer: S ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serializes the solutions to a JSON-string or buffer.

§

impl<N> ToBytes for CoinbaseSolution<N>
where N: Network,

§

fn write_le<W>(&self, writer: W) -> Result<(), Error>
where W: Write,

Writes the solutions to the buffer.

source§

fn to_bytes_le(&self) -> Result<Vec<u8>, Error>
where Self: Sized,

Returns self as a byte array in little-endian order.
§

impl<N> Eq for CoinbaseSolution<N>
where N: Eq + Network,

§

impl<N> StructuralEq for CoinbaseSolution<N>
where N: Network,

§

impl<N> StructuralPartialEq for CoinbaseSolution<N>
where N: Network,

Auto Trait Implementations§

§

impl<N> RefUnwindSafe for CoinbaseSolution<N>
where <N as Environment>::Field: RefUnwindSafe, <<N as Environment>::PairingCurve as PairingEngine>::G1Affine: RefUnwindSafe, <N as Environment>::Projective: RefUnwindSafe,

§

impl<N> Send for CoinbaseSolution<N>

§

impl<N> Sync for CoinbaseSolution<N>

§

impl<N> Unpin for CoinbaseSolution<N>
where <N as Environment>::Field: Unpin, <<N as Environment>::PairingCurve as PairingEngine>::G1Affine: Unpin, <N as Environment>::Projective: Unpin,

§

impl<N> UnwindSafe for CoinbaseSolution<N>
where <N as Environment>::Field: UnwindSafe, <<N as Environment>::PairingCurve as PairingEngine>::G1Affine: UnwindSafe, <N as Environment>::Projective: UnwindSafe,

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<'de, T> DeserializeExt<'de> for T

source§

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
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

source§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. 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.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,