Struct CheckingParameters

Source
pub struct CheckingParameters { /* private fields */ }
Expand description

CheckingParameters carry enough information to confirm whether a Voucher was generated from a given u64 value using the unknown VouchingParameters associated with the CheckingParameters.

CheckingParameters should be obtained either by calling VouchingParameters::checking_parameters for transient in-memory parameters, by parsing a string representation with CheckingParameters::parse or CheckingParameters::parse_bytes, or, when initialising const variables with hardcoded strings, with CheckingParameters::parse_or_die.

After that, the result of VouchingParameters::vouch can be checked with CheckingParameters::check, and that of VouchingParameters::vouch_many with CheckingParameters::check_many.

Implementations§

Source§

impl CheckingParameters

Source

pub const REPRESENTATION_BYTE_COUNT: usize = 39usize

Number of ASCII characters in the string representation for one CheckingParameters instance.

Source

pub const fn parse(string: &str) -> Result<CheckingParameters, &'static str>

Attempts to parse the string representation of a CheckingParameters instance.

This representation can be generated by the std::fmt::Display trait, e.g., with format!("{}", checking_params) => "CHECK-9bf723a6b538fe4a-1dddb95caa81d852".

Source

pub const fn parse_or_die(string: &str) -> CheckingParameters

Parses the string representation of a CheckingParameters object or panics.

This function is mostly useful to initialise const literals.

Source

pub const fn check(self, expected: u64, voucher: Voucher) -> bool

Returns whether the expected value matches the voucher, assuming the voucher was generated with the VouchingParameters from which the self CheckingParameters came.

If the voucher was generated from different parameters (generated independently and uniformly at random), the probability of a match is less than 2**-60.

Source

pub fn check_many(self, expected: &[u64], vouchers: &[Voucher]) -> bool

Returns whether the expected values match all the vouchers, assuming the vouchers were generated with the VouchingParameters from which the self CheckingParameters came.

If the vouchers were generated from different parameters (generated independently and uniformly at random), the probability of a match is less than 2**-60.

Source

pub const fn parse_bytes( bytes: &[u8], ) -> Result<CheckingParameters, &'static str>

Attempts to parse bytes, which must be the utf-8 (it’s all ASCII) representation of a serialised CheckingParameters, with a length of exactly REPRESENTATION_BYTE_COUNT bytes.

Returns the CheckingParameters on success, and an error reason on failure.

Trait Implementations§

Source§

impl Clone for CheckingParameters

Source§

fn clone(&self) -> CheckingParameters

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 CheckingParameters

Source§

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

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

impl Display for CheckingParameters

Source§

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

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

impl Hash for CheckingParameters

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for CheckingParameters

Source§

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

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for CheckingParameters

Source§

impl Eq for CheckingParameters

Source§

impl StructuralPartialEq for CheckingParameters

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dst: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. 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> ToOwned for T
where T: Clone,

Source§

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§

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>,

Source§

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>,

Source§

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.