pub struct WriteCapability<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> { /* private fields */ }Expand description
A valid write capability.
use willow_data_model::{prelude::*, test_parameters::*};
use meadowcap::*;
let mut cap = WriteCapability::<
4, 4, 4,
TestNamespace,
TestNamespaceSignature,
TestSubspace,
TestSubspaceSignature,
>::new_communal(Family, Alfie);
assert_eq!(cap.receiver(), &Alfie);
cap.delegate(&AlfieSecret, Area::new_subspace_area(Alfie), Betty);
assert_eq!(cap.receiver(), &Betty);Implementations§
Source§impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
Sourcepub fn receiver(&self) -> &UserPublicKey
pub fn receiver(&self) -> &UserPublicKey
Returns the receiver of this 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_eq!(cap.receiver(), &Alfie);Sourcepub fn granted_namespace(&self) -> &NamespacePublicKey
pub fn granted_namespace(&self) -> &NamespacePublicKey
Returns the namespace id to which this grants access.
use willow_data_model::{prelude::*, test_parameters::*};
use meadowcap::*;
let cap = WriteCapability::<
4, 4, 4,
TestNamespace,
TestNamespaceSignature,
TestSubspace,
TestSubspaceSignature,
>::new_communal(Family, Alfie);
assert_eq!(cap.granted_namespace(), &Family);Sourcepub fn granted_area_ref(&self) -> Option<&Area<MCL, MCC, MPL, UserPublicKey>>
pub fn granted_area_ref(&self) -> Option<&Area<MCL, MCC, MPL, UserPublicKey>>
Returns a reference to the area to which this grants access, or None if there is no delegation step which restricts the initial area.
This method is slightly inconvenient to work with (you need special logic if there are no delegation steps), but it is efficient because it never explicitly creates a new area value. For the more convenient version, see granted_area.
use willow_data_model::{prelude::*, test_parameters::*};
use meadowcap::{*, raw::Delegation};
let mut cap = WriteCapability::<
4, 4, 4,
TestNamespace,
TestNamespaceSignature,
TestSubspace,
TestSubspaceSignature,
>::new_communal(Family, Alfie);
assert_eq!(cap.granted_area_ref(), None);
cap.delegate(&AlfieSecret, Area::new_subspace_area(Alfie), Betty);
assert_eq!(cap.granted_area_ref(), Some(&Area::new_subspace_area(Alfie)));Sourcepub fn genesis(
&self,
) -> &Genesis<NamespacePublicKey, NamespaceSignature, UserPublicKey>
pub fn genesis( &self, ) -> &Genesis<NamespacePublicKey, NamespaceSignature, UserPublicKey>
Returns the Genesis of this capability.
use willow_data_model::{prelude::*, test_parameters::*};
use meadowcap::{*, raw::*};
let cap = WriteCapability::<
4, 4, 4,
TestNamespace,
TestNamespaceSignature,
TestSubspace,
TestSubspaceSignature,
>::new_communal(Family, Alfie);
assert_eq!(
cap.genesis(),
&Genesis::Communal(CommunalGenesis {
access_mode: AccessMode::Write,
namespace_key: Family,
user_key: Alfie,
}),
);Sourcepub fn is_owned(&self) -> bool
pub fn is_owned(&self) -> bool
Returns true if and only if this is an owned capability.
use willow_data_model::{prelude::*, test_parameters::*};
use meadowcap::*;
let owncap = WriteCapability::<
4, 4, 4,
TestNamespace,
TestNamespaceSignature,
TestSubspace,
TestSubspaceSignature,
>::new_owned(&FamilySecret, Alfie);
assert!(owncap.is_owned());
let comcap = WriteCapability::<
4, 4, 4,
TestNamespace,
TestNamespaceSignature,
TestSubspace,
TestSubspaceSignature,
>::new_communal(Family, Alfie);
assert!(!comcap.is_owned());Sourcepub fn delegations(
&self,
) -> &[Delegation<MCL, MCC, MPL, UserPublicKey, UserSignature>]
pub fn delegations( &self, ) -> &[Delegation<MCL, MCC, MPL, UserPublicKey, UserSignature>]
Returns the Delegations of this capability as a slice.
use willow_data_model::{prelude::*, test_parameters::*};
use meadowcap::{*, raw::Delegation};
let mut cap = WriteCapability::<
4, 4, 4,
TestNamespace,
TestNamespaceSignature,
TestSubspace,
TestSubspaceSignature,
>::new_communal(Family, Alfie);
assert!(cap.delegations().is_empty());
cap.delegate(&AlfieSecret, Area::new_subspace_area(Alfie), Betty);
assert_eq!(cap.delegations().len(), 1);Sourcepub fn new_communal(
namespace_key: NamespacePublicKey,
user_key: UserPublicKey,
) -> Self
pub fn new_communal( namespace_key: NamespacePublicKey, user_key: UserPublicKey, ) -> Self
Creates a new communal write capability with no delegations.
use willow_data_model::{prelude::*, test_parameters::*};
use meadowcap::*;
let cap = WriteCapability::<
4, 4, 4,
TestNamespace,
TestNamespaceSignature,
TestSubspace,
TestSubspaceSignature,
>::new_communal(Family, Alfie);
assert!(!cap.is_owned());
assert_eq!(cap.receiver(), &Alfie);
assert_eq!(cap.granted_namespace(), &Family);
assert_eq!(cap.granted_area(), Area::new_subspace_area(Alfie));
assert!(cap.delegations().is_empty());Source§impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>where
NamespacePublicKey: Clone,
UserPublicKey: EncodableKnownLength,
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>where
NamespacePublicKey: Clone,
UserPublicKey: EncodableKnownLength,
Sourcepub fn new_owned<NamespaceKeypair>(
keypair: &NamespaceKeypair,
user_key: UserPublicKey,
) -> Self
pub fn new_owned<NamespaceKeypair>( keypair: &NamespaceKeypair, user_key: UserPublicKey, ) -> Self
Creates a new owned write capability with no delegations.
use willow_data_model::{prelude::*, test_parameters::*};
use meadowcap::*;
let cap = WriteCapability::<
4, 4, 4,
TestNamespace,
TestNamespaceSignature,
TestSubspace,
TestSubspaceSignature,
>::new_owned(&FamilySecret, Alfie);
assert!(cap.is_owned());
assert_eq!(cap.receiver(), &Alfie);
assert_eq!(cap.granted_namespace(), &Family);
assert_eq!(cap.granted_area(), Area::full());
assert!(cap.delegations().is_empty());Source§impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>where
UserPublicKey: PartialEq,
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>where
UserPublicKey: PartialEq,
Sourcepub fn includes_area(&self, area: &Area<MCL, MCC, MPL, UserPublicKey>) -> bool
pub fn includes_area(&self, area: &Area<MCL, MCC, MPL, UserPublicKey>) -> bool
Returns whether the given area is contained in the granted area of this capability.
use willow_data_model::{prelude::*, test_parameters::*};
use meadowcap::*;
let mut cap = WriteCapability::<
4, 4, 4,
TestNamespace,
TestNamespaceSignature,
TestSubspace,
TestSubspaceSignature,
>::new_communal(Family, Alfie);
assert!(cap.includes_area(&Area::new_subspace_area(Alfie)));
assert!(!cap.includes_area(&Area::full()));Source§impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
Sourcepub fn granted_area(&self) -> Area<MCL, MCC, MPL, UserPublicKey>
pub fn granted_area(&self) -> Area<MCL, MCC, MPL, UserPublicKey>
Returns by value the area to which this grants access.
Prefer using includes, includes_area or granted_area_ref whenever applicable, as these are more efficient.
use willow_data_model::{prelude::*, test_parameters::*};
use meadowcap::{*, raw::Delegation};
let mut cap = WriteCapability::<
4, 4, 4,
TestNamespace,
TestNamespaceSignature,
TestSubspace,
TestSubspaceSignature,
>::new_communal(Family, Alfie);
assert_eq!(cap.granted_area(), Area::new_subspace_area(Alfie));
cap.delegate(&AlfieSecret, Area::new_subspace_area(Alfie), Betty);
assert_eq!(cap.granted_area(), Area::new_subspace_area(Alfie));Source§impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
Sourcepub fn includes<T>(&self, t: &T) -> bool
pub fn includes<T>(&self, t: &T) -> bool
Returns whether the given namespaced coordinate is covered by this capability.
use willow_data_model::{prelude::*, test_parameters::*};
use meadowcap::*;
let alfies_entry = Entry::builder()
.namespace_id(Family)
.subspace_id(Alfie)
.path(Path::<4, 4, 4>::new())
.timestamp(12345)
.payload_digest(Spades)
.payload_length(2)
.build().unwrap();
let bettys_entry = Entry::prefilled_builder(&alfies_entry)
.subspace_id(Betty)
.build().unwrap();
let mut cap = WriteCapability::<
4, 4, 4,
TestNamespace,
TestNamespaceSignature,
TestSubspace,
TestSubspaceSignature,
>::new_communal(Family, Alfie);
assert!(cap.includes(&alfies_entry));
assert!(!cap.includes(&bettys_entry));Source§impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>where
NamespacePublicKey: Verifier<NamespaceSignature> + EncodableKnownLength,
NamespaceSignature: EncodableKnownLength,
UserPublicKey: Verifier<UserSignature> + EncodableKnownLength + PartialEq + Clone,
UserSignature: EncodableKnownLength,
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>where
NamespacePublicKey: Verifier<NamespaceSignature> + EncodableKnownLength,
NamespaceSignature: EncodableKnownLength,
UserPublicKey: Verifier<UserSignature> + EncodableKnownLength + PartialEq + Clone,
UserSignature: EncodableKnownLength,
Sourcepub fn try_delegate<UserKeypair>(
&mut self,
keypair: &UserKeypair,
new_area: Area<MCL, MCC, MPL, UserPublicKey>,
new_receiver: UserPublicKey,
) -> Result<(), InvalidCapability>
pub fn try_delegate<UserKeypair>( &mut self, keypair: &UserKeypair, new_area: Area<MCL, MCC, MPL, UserPublicKey>, new_receiver: UserPublicKey, ) -> Result<(), InvalidCapability>
Delegates this capability, returning an error if the resulting granted area would not be included in the previous granted area, or if the public key of the keypair was not the receiver of the capability pre-delegation.
Sourcepub fn delegate<UserKeypair>(
&mut self,
keypair: &UserKeypair,
new_area: Area<MCL, MCC, MPL, UserPublicKey>,
new_receiver: UserPublicKey,
)
pub fn delegate<UserKeypair>( &mut self, keypair: &UserKeypair, new_area: Area<MCL, MCC, MPL, UserPublicKey>, new_receiver: UserPublicKey, )
Delegates this capability, panicking if the resulting granted area would not be included in the previous granted area, or if the public key of the keypair was not the receiver of the capability pre-delegation.
Trait Implementations§
Source§impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey: Clone, NamespaceSignature: Clone, UserPublicKey: Clone, UserSignature: Clone> Clone for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey: Clone, NamespaceSignature: Clone, UserPublicKey: Clone, UserSignature: Clone> Clone for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
Source§fn clone(
&self,
) -> WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
fn clone( &self, ) -> WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> Debug for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> Debug for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
Source§impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> Decodable for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>where
NamespacePublicKey: Verifier<NamespaceSignature> + EncodableKnownLength + DecodableCanonic<ErrorCanonic: Into<Blame>>,
NamespaceSignature: EncodableKnownLength + DecodableCanonic<ErrorCanonic: Into<Blame>>,
UserPublicKey: Verifier<UserSignature> + EncodableKnownLength + DecodableCanonic<ErrorReason: Into<Blame>, ErrorCanonic: Into<Blame>> + Clone + PartialEq,
UserSignature: EncodableKnownLength + DecodableCanonic<ErrorCanonic: Into<Blame>>,
Implements decoding according to the EncodeMcCapability encoding relation, and further errors if the decoded capability is a read capability.
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> Decodable for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>where
NamespacePublicKey: Verifier<NamespaceSignature> + EncodableKnownLength + DecodableCanonic<ErrorCanonic: Into<Blame>>,
NamespaceSignature: EncodableKnownLength + DecodableCanonic<ErrorCanonic: Into<Blame>>,
UserPublicKey: Verifier<UserSignature> + EncodableKnownLength + DecodableCanonic<ErrorReason: Into<Blame>, ErrorCanonic: Into<Blame>> + Clone + PartialEq,
UserSignature: EncodableKnownLength + DecodableCanonic<ErrorCanonic: Into<Blame>>,
Implements decoding according to the EncodeMcCapability encoding relation, and further errors if the decoded capability is a read capability.
Source§type ErrorReason = Blame
type ErrorReason = Blame
Source§async fn decode<P>(
producer: &mut P,
) -> Result<Self, DecodeError<P::Final, P::Error, Self::ErrorReason>>
async fn decode<P>( producer: &mut P, ) -> Result<Self, DecodeError<P::Final, P::Error, Self::ErrorReason>>
Self, or yields an error if the producer does not produce a valid encoding. Read moreSource§impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> DecodableCanonic for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>where
NamespacePublicKey: Verifier<NamespaceSignature> + EncodableKnownLength + DecodableCanonic<ErrorCanonic: Into<Blame>>,
NamespaceSignature: EncodableKnownLength + DecodableCanonic<ErrorCanonic: Into<Blame>>,
UserPublicKey: Verifier<UserSignature> + EncodableKnownLength + DecodableCanonic<ErrorReason: Into<Blame>, ErrorCanonic: Into<Blame>> + Clone + PartialEq,
UserSignature: EncodableKnownLength + DecodableCanonic<ErrorCanonic: Into<Blame>>,
Implements decoding according to the encode_mc_capability encoding function, and further errors if the decoded capability is a read capability.
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> DecodableCanonic for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>where
NamespacePublicKey: Verifier<NamespaceSignature> + EncodableKnownLength + DecodableCanonic<ErrorCanonic: Into<Blame>>,
NamespaceSignature: EncodableKnownLength + DecodableCanonic<ErrorCanonic: Into<Blame>>,
UserPublicKey: Verifier<UserSignature> + EncodableKnownLength + DecodableCanonic<ErrorReason: Into<Blame>, ErrorCanonic: Into<Blame>> + Clone + PartialEq,
UserSignature: EncodableKnownLength + DecodableCanonic<ErrorCanonic: Into<Blame>>,
Implements decoding according to the encode_mc_capability encoding function, and further errors if the decoded capability is a read capability.
Source§type ErrorCanonic = Blame
type ErrorCanonic = Blame
Self. Read moreSource§async fn decode_canonic<P>(
producer: &mut P,
) -> Result<Self, DecodeError<P::Final, P::Error, Self::ErrorCanonic>>
async fn decode_canonic<P>( producer: &mut P, ) -> Result<Self, DecodeError<P::Final, P::Error, Self::ErrorCanonic>>
Self, and errors if the input encoding is not the canonical one.Source§impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> Encodable for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
Implements encoding according to the encode_mc_capability encoding function.
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> Encodable for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
Implements encoding according to the encode_mc_capability encoding function.
Source§impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> EncodableKnownLength for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>where
NamespacePublicKey: EncodableKnownLength,
NamespaceSignature: EncodableKnownLength,
UserPublicKey: EncodableKnownLength + PartialEq + Clone,
UserSignature: EncodableKnownLength,
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> EncodableKnownLength for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>where
NamespacePublicKey: EncodableKnownLength,
NamespaceSignature: EncodableKnownLength,
UserPublicKey: EncodableKnownLength + PartialEq + Clone,
UserSignature: EncodableKnownLength,
Source§fn len_of_encoding(&self) -> usize
fn len_of_encoding(&self) -> usize
self. A successful call to encode must feed exactly that many symbols into the bulk consumer.Source§impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> From<WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>> for PossiblyValidWriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> From<WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>> for PossiblyValidWriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
Source§fn from(
value: WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>,
) -> Self
fn from( value: WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>, ) -> Self
Source§impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey: Hash, NamespaceSignature: Hash, UserPublicKey: Hash, UserSignature: Hash> Hash for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey: Hash, NamespaceSignature: Hash, UserPublicKey: Hash, UserSignature: Hash> Hash for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
Source§impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey: PartialEq, NamespaceSignature: PartialEq, UserPublicKey: PartialEq, UserSignature: PartialEq> PartialEq for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey: PartialEq, NamespaceSignature: PartialEq, UserPublicKey: PartialEq, UserSignature: PartialEq> PartialEq for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
Source§fn eq(
&self,
other: &WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>,
) -> bool
fn eq( &self, other: &WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>, ) -> bool
self and other values to be equal, and is used by ==.impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey: Eq, NamespaceSignature: Eq, UserPublicKey: Eq, UserSignature: Eq> Eq for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> StructuralPartialEq for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
Auto Trait Implementations§
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> Freeze for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> RefUnwindSafe for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>where
NamespacePublicKey: RefUnwindSafe,
UserPublicKey: RefUnwindSafe,
NamespaceSignature: RefUnwindSafe,
UserSignature: RefUnwindSafe,
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> Send for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> Sync for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> Unpin for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>
impl<const MCL: usize, const MCC: usize, const MPL: usize, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature> UnwindSafe for WriteCapability<MCL, MCC, MPL, NamespacePublicKey, NamespaceSignature, UserPublicKey, UserSignature>where
NamespacePublicKey: UnwindSafe,
UserPublicKey: UnwindSafe,
NamespaceSignature: UnwindSafe,
UserSignature: UnwindSafe,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, S> EncodableExt<S> for Twhere
T: Encodable<S>,
impl<T, S> EncodableExt<S> for Twhere
T: Encodable<S>,
Source§impl<T, S> EncodableKnownLengthExt<S> for Twhere
T: EncodableKnownLength<S>,
impl<T, S> EncodableKnownLengthExt<S> for Twhere
T: EncodableKnownLength<S>,
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>
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>
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