McIngredients

Struct McIngredients 

Source
pub struct McIngredients<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair> { /* private fields */ }
Expand description

Everything you need to authorise entries via Meadowcap: a WriteCapability, and the keypair of its receiver.

Implementations§

Source§

impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair> McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>

Source

pub fn capability( &self, ) -> &WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>

Returns a reference to the write capability.

Source

pub fn keypair(&self) -> &UserKeypair

Returns a reference to the keypair.

Source

pub fn into_parts( self, ) -> (WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>, UserKeypair)

Takes ownership of the ingredients and returns the capability and keypair by value.

Source§

impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair> McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>
where UserPublicKey: PartialEq, UserKeypair: Keypair<VerifyingKey = UserPublicKey>,

Source

pub fn new( capability: WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>, keypair: UserKeypair, ) -> Option<Self>

Creates new McIngredients, returning None if the keypair does not match the receiver of the capability.

use willow_data_model::{prelude::*, test_parameters::*};
use meadowcap::*;

let cap = WriteCapability::<
    4, 4, 4,
    TestNamespace,
    TestNamespaceSignature,
    TestSubspace,
    TestSubspaceSignature,
>::new_communal(Family, Alfie);

assert!(McIngredients::new(cap.clone(), AlfieSecret).is_some());
assert!(McIngredients::new(cap, BettySecret).is_none());

Trait Implementations§

Source§

impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey: Clone, NamespaceSignature: Clone, UserPublicKey: Clone, UserSignature: Clone, UserKeypair: Clone> Clone for McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>

Source§

fn clone( &self, ) -> McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>

Returns a duplicate 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<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey: Debug, NamespaceSignature: Debug, UserPublicKey: Debug, UserSignature: Debug, UserKeypair: Debug> Debug for McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>

Source§

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

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

impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey: Hash, NamespaceSignature: Hash, UserPublicKey: Hash, UserSignature: Hash, UserKeypair: Hash> Hash for McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>

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<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey: PartialEq, NamespaceSignature: PartialEq, UserPublicKey: PartialEq, UserSignature: PartialEq, UserKeypair: PartialEq> PartialEq for McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>

Source§

fn eq( &self, other: &McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>, ) -> 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<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey: Eq, NamespaceSignature: Eq, UserPublicKey: Eq, UserSignature: Eq, UserKeypair: Eq> Eq for McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>

Source§

impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair> StructuralPartialEq for McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>

Auto Trait Implementations§

§

impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair> Freeze for McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>
where UserKeypair: Freeze, NamespacePublicKey: Freeze, UserPublicKey: Freeze, NamespaceSignature: Freeze,

§

impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair> RefUnwindSafe for McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>
where UserKeypair: RefUnwindSafe, NamespacePublicKey: RefUnwindSafe, UserPublicKey: RefUnwindSafe, NamespaceSignature: RefUnwindSafe, UserSignature: RefUnwindSafe,

§

impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair> Send for McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>
where UserKeypair: Send, NamespacePublicKey: Send, UserPublicKey: Send, NamespaceSignature: Send, UserSignature: Send,

§

impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair> Sync for McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>
where UserKeypair: Sync, NamespacePublicKey: Sync, UserPublicKey: Sync, NamespaceSignature: Sync, UserSignature: Sync,

§

impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair> Unpin for McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>
where UserKeypair: Unpin, NamespacePublicKey: Unpin, UserPublicKey: Unpin, NamespaceSignature: Unpin, UserSignature: Unpin,

§

impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair> UnwindSafe for McIngredients<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature, UserKeypair>
where UserKeypair: UnwindSafe, NamespacePublicKey: UnwindSafe, UserPublicKey: UnwindSafe, NamespaceSignature: UnwindSafe, UserSignature: 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<T> CloneToUninit for T
where T: Clone,

Source§

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

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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