Struct sequoia_openpgp::cert::amalgamation::key::KeyAmalgamation
source · [−]pub struct KeyAmalgamation<'a, P, R, R2> where
P: 'a + KeyParts,
R: 'a + KeyRole, { /* private fields */ }
Expand description
A key, and its associated data, and useful methods.
A KeyAmalgamation
is like a ComponentAmalgamation
, but
specialized for keys. Due to the requirement to keep track of the
key’s role when it is erased (see the module’s documentation for
more details), this is a different data structure rather than a
specialized type alias.
Generally, you won’t use this type directly, but instead use
PrimaryKeyAmalgamation
, SubordinateKeyAmalgamation
, or
ErasedKeyAmalgamation
.
A KeyAmalgamation
is returned by Cert::primary_key
, and
Cert::keys
.
KeyAmalgamation
implements ValidateAmalgamation
, which
allows you to turn a KeyAmalgamation
into a
ValidKeyAmalgamation
using KeyAmalgamation::with_policy
.
Examples
Iterating over all keys:
for ka in cert.keys() {
let ka: ErasedKeyAmalgamation<_> = ka;
}
Getting the primary key:
let ka: PrimaryKeyAmalgamation<_> = cert.primary_key();
Iterating over just the subkeys:
// We can skip the primary key (it's always first):
for ka in cert.keys().skip(1) {
let ka: ErasedKeyAmalgamation<_> = ka;
}
// Or use `subkeys`, which returns a more accurate type:
for ka in cert.keys().subkeys() {
let ka: SubordinateKeyAmalgamation<_> = ka;
}
Implementations
sourceimpl<'a, P> KeyAmalgamation<'a, P, PrimaryRole, ()> where
P: KeyParts,
impl<'a, P> KeyAmalgamation<'a, P, PrimaryRole, ()> where
P: KeyParts,
sourcepub fn parts_into_public(self) -> PrimaryKeyAmalgamation<'a, PublicParts>
pub fn parts_into_public(self) -> PrimaryKeyAmalgamation<'a, PublicParts>
Changes the key’s parts tag to PublicParts
.
sourcepub fn parts_as_public(&'a self) -> &'a PrimaryKeyAmalgamation<'a, PublicParts>
pub fn parts_as_public(&'a self) -> &'a PrimaryKeyAmalgamation<'a, PublicParts>
Changes the key’s parts tag to PublicParts
.
sourcepub fn parts_into_secret(
self
) -> Result<PrimaryKeyAmalgamation<'a, SecretParts>>
pub fn parts_into_secret(
self
) -> Result<PrimaryKeyAmalgamation<'a, SecretParts>>
Changes the key’s parts tag to SecretParts
.
sourcepub fn parts_as_secret(
&'a self
) -> Result<&'a PrimaryKeyAmalgamation<'a, SecretParts>>
pub fn parts_as_secret(
&'a self
) -> Result<&'a PrimaryKeyAmalgamation<'a, SecretParts>>
Changes the key’s parts tag to SecretParts
.
sourcepub fn parts_into_unspecified(
self
) -> PrimaryKeyAmalgamation<'a, UnspecifiedParts>
pub fn parts_into_unspecified(
self
) -> PrimaryKeyAmalgamation<'a, UnspecifiedParts>
Changes the key’s parts tag to UnspecifiedParts
.
sourcepub fn parts_as_unspecified(
&'a self
) -> &PrimaryKeyAmalgamation<'a, UnspecifiedParts>
pub fn parts_as_unspecified(
&'a self
) -> &PrimaryKeyAmalgamation<'a, UnspecifiedParts>
Changes the key’s parts tag to UnspecifiedParts
.
sourceimpl<'a, P> KeyAmalgamation<'a, P, SubordinateRole, ()> where
P: KeyParts,
impl<'a, P> KeyAmalgamation<'a, P, SubordinateRole, ()> where
P: KeyParts,
sourcepub fn parts_into_public(self) -> SubordinateKeyAmalgamation<'a, PublicParts>
pub fn parts_into_public(self) -> SubordinateKeyAmalgamation<'a, PublicParts>
Changes the key’s parts tag to PublicParts
.
sourcepub fn parts_as_public(
&'a self
) -> &'a SubordinateKeyAmalgamation<'a, PublicParts>
pub fn parts_as_public(
&'a self
) -> &'a SubordinateKeyAmalgamation<'a, PublicParts>
Changes the key’s parts tag to PublicParts
.
sourcepub fn parts_into_secret(
self
) -> Result<SubordinateKeyAmalgamation<'a, SecretParts>>
pub fn parts_into_secret(
self
) -> Result<SubordinateKeyAmalgamation<'a, SecretParts>>
Changes the key’s parts tag to SecretParts
.
sourcepub fn parts_as_secret(
&'a self
) -> Result<&'a SubordinateKeyAmalgamation<'a, SecretParts>>
pub fn parts_as_secret(
&'a self
) -> Result<&'a SubordinateKeyAmalgamation<'a, SecretParts>>
Changes the key’s parts tag to SecretParts
.
sourcepub fn parts_into_unspecified(
self
) -> SubordinateKeyAmalgamation<'a, UnspecifiedParts>
pub fn parts_into_unspecified(
self
) -> SubordinateKeyAmalgamation<'a, UnspecifiedParts>
Changes the key’s parts tag to UnspecifiedParts
.
sourcepub fn parts_as_unspecified(
&'a self
) -> &SubordinateKeyAmalgamation<'a, UnspecifiedParts>
pub fn parts_as_unspecified(
&'a self
) -> &SubordinateKeyAmalgamation<'a, UnspecifiedParts>
Changes the key’s parts tag to UnspecifiedParts
.
sourceimpl<'a, P> KeyAmalgamation<'a, P, UnspecifiedRole, bool> where
P: KeyParts,
impl<'a, P> KeyAmalgamation<'a, P, UnspecifiedRole, bool> where
P: KeyParts,
sourcepub fn parts_into_public(self) -> ErasedKeyAmalgamation<'a, PublicParts>
pub fn parts_into_public(self) -> ErasedKeyAmalgamation<'a, PublicParts>
Changes the key’s parts tag to PublicParts
.
sourcepub fn parts_as_public(&'a self) -> &'a ErasedKeyAmalgamation<'a, PublicParts>
pub fn parts_as_public(&'a self) -> &'a ErasedKeyAmalgamation<'a, PublicParts>
Changes the key’s parts tag to PublicParts
.
sourcepub fn parts_into_secret(self) -> Result<ErasedKeyAmalgamation<'a, SecretParts>>
pub fn parts_into_secret(self) -> Result<ErasedKeyAmalgamation<'a, SecretParts>>
Changes the key’s parts tag to SecretParts
.
sourcepub fn parts_as_secret(
&'a self
) -> Result<&'a ErasedKeyAmalgamation<'a, SecretParts>>
pub fn parts_as_secret(
&'a self
) -> Result<&'a ErasedKeyAmalgamation<'a, SecretParts>>
Changes the key’s parts tag to SecretParts
.
sourcepub fn parts_into_unspecified(
self
) -> ErasedKeyAmalgamation<'a, UnspecifiedParts>
pub fn parts_into_unspecified(
self
) -> ErasedKeyAmalgamation<'a, UnspecifiedParts>
Changes the key’s parts tag to UnspecifiedParts
.
sourcepub fn parts_as_unspecified(
&'a self
) -> &ErasedKeyAmalgamation<'a, UnspecifiedParts>
pub fn parts_as_unspecified(
&'a self
) -> &ErasedKeyAmalgamation<'a, UnspecifiedParts>
Changes the key’s parts tag to UnspecifiedParts
.
sourceimpl<'a, P, R, R2> KeyAmalgamation<'a, P, R, R2> where
P: 'a + KeyParts,
R: 'a + KeyRole,
impl<'a, P, R, R2> KeyAmalgamation<'a, P, R, R2> where
P: 'a + KeyParts,
R: 'a + KeyRole,
sourcepub fn component_amalgamation(&self) -> &ComponentAmalgamation<'a, Key<P, R>>
pub fn component_amalgamation(&self) -> &ComponentAmalgamation<'a, Key<P, R>>
Returns the KeyAmalgamation
’s ComponentAmalgamation
.
Methods from Deref<Target = ComponentAmalgamation<'a, Key<P, R>>>
sourcepub fn parts_as_public(
&'a self
) -> &'a ComponentAmalgamation<'a, Key<PublicParts, R>>
pub fn parts_as_public(
&'a self
) -> &'a ComponentAmalgamation<'a, Key<PublicParts, R>>
Changes the key’s parts tag to PublicParts
.
sourcepub fn parts_as_secret(
&'a self
) -> Result<&'a ComponentAmalgamation<'a, Key<SecretParts, R>>>
pub fn parts_as_secret(
&'a self
) -> Result<&'a ComponentAmalgamation<'a, Key<SecretParts, R>>>
Changes the key’s parts tag to SecretParts
.
sourcepub fn parts_as_unspecified(
&'a self
) -> &ComponentAmalgamation<'a, Key<UnspecifiedParts, R>>
pub fn parts_as_unspecified(
&'a self
) -> &ComponentAmalgamation<'a, Key<UnspecifiedParts, R>>
Changes the key’s parts tag to UnspecifiedParts
.
sourcepub fn role_as_primary(
&'a self
) -> &'a ComponentAmalgamation<'a, Key<P, PrimaryRole>>
pub fn role_as_primary(
&'a self
) -> &'a ComponentAmalgamation<'a, Key<P, PrimaryRole>>
Changes the key’s role tag to PrimaryRole
.
sourcepub fn role_as_subordinate(
&'a self
) -> &'a ComponentAmalgamation<'a, Key<P, SubordinateRole>>
pub fn role_as_subordinate(
&'a self
) -> &'a ComponentAmalgamation<'a, Key<P, SubordinateRole>>
Changes the key’s role tag to SubordinateRole
.
sourcepub fn role_as_unspecified(
&'a self
) -> &'a ComponentAmalgamation<'a, Key<P, UnspecifiedRole>>
pub fn role_as_unspecified(
&'a self
) -> &'a ComponentAmalgamation<'a, Key<P, UnspecifiedRole>>
Changes the key’s role tag to UnspecifiedRole
.
sourcepub fn cert(&self) -> &'a Cert
pub fn cert(&self) -> &'a Cert
Returns the component’s associated certificate.
for u in cert.userids() {
// It's not only an identical `Cert`, it's the same one.
assert!(std::ptr::eq(u.cert(), &cert));
}
sourcepub fn bundle(&self) -> &'a ComponentBundle<C>
pub fn bundle(&self) -> &'a ComponentBundle<C>
Returns this amalgamation’s bundle.
Note: although ComponentAmalgamation
derefs to a
&ComponentBundle
, this method provides a more accurate
lifetime, which is helpful when returning the reference from a
function. See the module’s documentation for more details.
Examples
use openpgp::cert::prelude::*;
use openpgp::packet::prelude::*;
cert.userids()
.map(|ua| {
// The following doesn't work:
//
// let b: &ComponentBundle<_> = &ua; b
//
// Because ua's lifetime is this closure and autoderef
// assigns `b` the same lifetime as `ua`. `bundle()`,
// however, returns a reference whose lifetime is that
// of `cert`.
ua.bundle()
})
.collect::<Vec<&ComponentBundle<_>>>();
sourcepub fn component(&self) -> &'a C
pub fn component(&self) -> &'a C
Returns this amalgamation’s component.
Note: although ComponentAmalgamation
derefs to a
&Component
(via &ComponentBundle
), this method provides a
more accurate lifetime, which is helpful when returning the
reference from a function. See the module’s documentation
for more details.
sourcepub fn self_signatures(
&self
) -> impl Iterator<Item = &'a Signature> + Send + Sync
pub fn self_signatures(
&self
) -> impl Iterator<Item = &'a Signature> + Send + Sync
The component’s self-signatures.
sourcepub fn certifications(
&self
) -> impl Iterator<Item = &'a Signature> + Send + Sync
pub fn certifications(
&self
) -> impl Iterator<Item = &'a Signature> + Send + Sync
The component’s third-party certifications.
sourcepub fn self_revocations(
&self
) -> impl Iterator<Item = &'a Signature> + Send + Sync
pub fn self_revocations(
&self
) -> impl Iterator<Item = &'a Signature> + Send + Sync
The component’s revocations that were issued by the certificate holder.
sourcepub fn userid(&self) -> &'a UserID
pub fn userid(&self) -> &'a UserID
Returns a reference to the User ID.
Note: although ComponentAmalgamation<UserID>
derefs to a
&UserID
(via &ComponentBundle
), this method provides a
more accurate lifetime, which is helpful when returning the
reference from a function. See the module’s documentation
for more details.
sourcepub fn attest_certifications<C, S>(
&self,
policy: &dyn Policy,
primary_signer: &mut dyn Signer,
certifications: C
) -> Result<Vec<Signature>> where
C: IntoIterator<Item = S>,
S: Borrow<Signature>,
pub fn attest_certifications<C, S>(
&self,
policy: &dyn Policy,
primary_signer: &mut dyn Signer,
certifications: C
) -> Result<Vec<Signature>> where
C: IntoIterator<Item = S>,
S: Borrow<Signature>,
Attests to third-party certifications.
This feature is experimental.
Allows the certificate owner to attest to third party certifications. See Section 5.2.3.30 of RFC 4880bis for details. This can be used to address certificate flooding concerns.
A policy is needed, because the expiration is updated by updating the current binding signatures.
Examples
let (alice, _) = CertBuilder::new()
.add_userid("alice@example.org")
.generate()?;
let mut alice_signer =
alice.primary_key().key().clone().parts_into_secret()?
.into_keypair()?;
let (bob, _) = CertBuilder::new()
.add_userid("bob@example.org")
.generate()?;
let mut bob_signer =
bob.primary_key().key().clone().parts_into_secret()?
.into_keypair()?;
let bob_pristine = bob.clone();
// Have Alice certify the binding between "bob@example.org" and
// Bob's key.
let alice_certifies_bob
= bob.userids().next().unwrap().userid().bind(
&mut alice_signer, &bob,
SignatureBuilder::new(SignatureType::GenericCertification))?;
let bob = bob.insert_packets(vec![alice_certifies_bob.clone()])?;
// Have Bob attest that certification.
let bobs_uid = bob.userids().next().unwrap();
let attestations =
bobs_uid.attest_certifications(
policy,
&mut bob_signer,
bobs_uid.certifications())?;
let bob = bob.insert_packets(attestations)?;
assert_eq!(bob.bad_signatures().count(), 0);
assert_eq!(bob.userids().next().unwrap().certifications().next(),
Some(&alice_certifies_bob));
sourcepub fn user_attribute(&self) -> &'a UserAttribute
pub fn user_attribute(&self) -> &'a UserAttribute
Returns a reference to the User Attribute.
Note: although ComponentAmalgamation<UserAttribute>
derefs
to a &UserAttribute
(via &ComponentBundle
), this method
provides a more accurate lifetime, which is helpful when
returning the reference from a function. See the module’s
documentation for more details.
sourcepub fn attest_certifications<C, S>(
&self,
policy: &dyn Policy,
primary_signer: &mut dyn Signer,
certifications: C
) -> Result<Vec<Signature>> where
C: IntoIterator<Item = S>,
S: Borrow<Signature>,
pub fn attest_certifications<C, S>(
&self,
policy: &dyn Policy,
primary_signer: &mut dyn Signer,
certifications: C
) -> Result<Vec<Signature>> where
C: IntoIterator<Item = S>,
S: Borrow<Signature>,
Attests to third-party certifications.
This feature is experimental.
Allows the certificate owner to attest to third party certifications. See Section 5.2.3.30 of RFC 4880bis for details. This can be used to address certificate flooding concerns.
A policy is needed, because the expiration is updated by updating the current binding signatures.
Examples
Methods from Deref<Target = ComponentBundle<C>>
sourcepub fn parts_as_public(&self) -> &KeyBundle<PublicParts, R>
pub fn parts_as_public(&self) -> &KeyBundle<PublicParts, R>
Changes the key’s parts tag to PublicParts
.
sourcepub fn parts_as_secret(&self) -> Result<&KeyBundle<SecretParts, R>>
pub fn parts_as_secret(&self) -> Result<&KeyBundle<SecretParts, R>>
Changes the key’s parts tag to SecretParts
.
sourcepub fn parts_as_unspecified(&self) -> &KeyBundle<UnspecifiedParts, R>
pub fn parts_as_unspecified(&self) -> &KeyBundle<UnspecifiedParts, R>
Changes the key’s parts tag to UnspecifiedParts
.
sourcepub fn role_as_primary(&self) -> &KeyBundle<P, PrimaryRole>
pub fn role_as_primary(&self) -> &KeyBundle<P, PrimaryRole>
Changes the key’s role tag to PrimaryRole
.
sourcepub fn role_as_subordinate(&self) -> &KeyBundle<P, SubordinateRole>
pub fn role_as_subordinate(&self) -> &KeyBundle<P, SubordinateRole>
Changes the key’s role tag to SubordinateRole
.
sourcepub fn role_as_unspecified(&self) -> &KeyBundle<P, UnspecifiedRole>
pub fn role_as_unspecified(&self) -> &KeyBundle<P, UnspecifiedRole>
Changes the key’s role tag to UnspecifiedRole
.
sourcepub fn component(&self) -> &C
pub fn component(&self) -> &C
Returns a reference to the bundle’s component.
Examples
// Display some information about any unknown components.
for u in cert.unknowns() {
eprintln!(" - {:?}", u.component());
}
sourcepub fn binding_signature<T>(
&self,
policy: &dyn Policy,
t: T
) -> Result<&Signature> where
T: Into<Option<SystemTime>>,
pub fn binding_signature<T>(
&self,
policy: &dyn Policy,
t: T
) -> Result<&Signature> where
T: Into<Option<SystemTime>>,
Returns the active binding signature at time t
.
The active binding signature is the most recent, non-revoked
self-signature that is valid according to the policy
and
alive at time t
(creation time <= t
, t < expiry
). If
there are multiple such signatures then the signatures are
ordered by their MPIs interpreted as byte strings.
Examples
use openpgp::policy::StandardPolicy;
let p = &StandardPolicy::new();
// Display information about each User ID's current active
// binding signature (the `time` parameter is `None`), if any.
for ua in cert.userids() {
eprintln!("{:?}", ua.binding_signature(p, None));
}
sourcepub fn self_signatures(&self) -> &[Signature]
pub fn self_signatures(&self) -> &[Signature]
Returns the component’s self-signatures.
The signatures are validated, and they are sorted by their creation time, most recent first.
Examples
use openpgp::policy::StandardPolicy;
let p = &StandardPolicy::new();
for (i, ka) in cert.keys().enumerate() {
eprintln!("Key #{} ({}) has {:?} self signatures",
i, ka.fingerprint(),
ka.bundle().self_signatures().len());
}
sourcepub fn certifications(&self) -> &[Signature]
pub fn certifications(&self) -> &[Signature]
Returns the component’s third-party certifications.
The signatures are not validated. They are sorted by their creation time, most recent first.
Examples
use openpgp::policy::StandardPolicy;
let p = &StandardPolicy::new();
for ua in cert.userids() {
eprintln!("User ID {} has {:?} unverified, third-party certifications",
String::from_utf8_lossy(ua.userid().value()),
ua.bundle().certifications().len());
}
sourcepub fn self_revocations(&self) -> &[Signature]
pub fn self_revocations(&self) -> &[Signature]
Returns the component’s revocations that were issued by the certificate holder.
The revocations are validated, and they are sorted by their creation time, most recent first.
Examples
use openpgp::policy::StandardPolicy;
let p = &StandardPolicy::new();
for u in cert.userids() {
eprintln!("User ID {} has {:?} revocation certificates.",
String::from_utf8_lossy(u.userid().value()),
u.bundle().self_revocations().len());
}
sourcepub fn other_revocations(&self) -> &[Signature]
pub fn other_revocations(&self) -> &[Signature]
Returns the component’s revocations that were issued by other certificates.
The revocations are not validated. They are sorted by their creation time, most recent first.
Examples
use openpgp::policy::StandardPolicy;
let p = &StandardPolicy::new();
for u in cert.userids() {
eprintln!("User ID {} has {:?} unverified, third-party revocation certificates.",
String::from_utf8_lossy(u.userid().value()),
u.bundle().other_revocations().len());
}
sourcepub fn attestations(&self) -> impl Iterator<Item = &Signature> + Send + Sync
pub fn attestations(&self) -> impl Iterator<Item = &Signature> + Send + Sync
Returns all of the component’s Attestation Key Signatures.
This feature is experimental.
The signatures are validated, and they are sorted by their creation time, most recent first.
A certificate owner can use Attestation Key Signatures to attest to third party certifications. Currently, only userid and user attribute certifications can be attested. See Section 5.2.3.30 of RFC 4880bis for details.
Examples
use openpgp::policy::StandardPolicy;
let p = &StandardPolicy::new();
for (i, uid) in cert.userids().enumerate() {
eprintln!("UserID #{} ({:?}) has {:?} attestation key signatures",
i, uid.email(),
uid.attestations().count());
}
sourcepub fn signatures(&self) -> impl Iterator<Item = &Signature> + Send + Sync
pub fn signatures(&self) -> impl Iterator<Item = &Signature> + Send + Sync
Returns all of the component’s signatures.
Only the self-signatures are validated. The signatures are sorted first by type, then by creation time. The self revocations come first, then the self signatures, then any key attestation signatures, certifications, and third-party revocations coming last. This function may return additional types of signatures that could be associated to this component.
Examples
use openpgp::policy::StandardPolicy;
let p = &StandardPolicy::new();
for (i, ka) in cert.keys().enumerate() {
eprintln!("Key #{} ({}) has {:?} signatures",
i, ka.fingerprint(),
ka.signatures().count());
}
sourcepub fn key(&self) -> &Key<P, R>
pub fn key(&self) -> &Key<P, R>
Returns a reference to the key.
This is just a type-specific alias for
ComponentBundle::component
.
Examples
// Display some information about the keys.
for ka in cert.keys() {
eprintln!(" - {:?}", ka.key());
}
sourcepub fn revocation_status<T>(
&self,
policy: &dyn Policy,
t: T
) -> RevocationStatus<'_> where
T: Into<Option<SystemTime>>,
pub fn revocation_status<T>(
&self,
policy: &dyn Policy,
t: T
) -> RevocationStatus<'_> where
T: Into<Option<SystemTime>>,
Returns the subkey’s revocation status at time t
.
A subkey is revoked at time t
if:
-
There is a live revocation at time
t
that is newer than all live self signatures at timet
, or -
There is a hard revocation (even if it is not live at time
t
, and even if there is a newer self-signature).
Note: Certs and subkeys have different criteria from User IDs and User Attributes.
Note: this only returns whether this subkey is revoked; it does not imply anything about the Cert or other components.
Examples
use openpgp::policy::StandardPolicy;
let p = &StandardPolicy::new();
// Display the subkeys' revocation status.
for ka in cert.keys().subkeys() {
eprintln!(" Revocation status of {}: {:?}",
ka.fingerprint(), ka.revocation_status(p, None));
}
sourcepub fn userid(&self) -> &UserID
pub fn userid(&self) -> &UserID
Returns a reference to the User ID.
This is just a type-specific alias for
ComponentBundle::component
.
Examples
// Display some information about the User IDs.
for ua in cert.userids() {
eprintln!(" - {:?}", ua.userid());
}
sourcepub fn revocation_status<T>(
&self,
policy: &dyn Policy,
t: T
) -> RevocationStatus<'_> where
T: Into<Option<SystemTime>>,
pub fn revocation_status<T>(
&self,
policy: &dyn Policy,
t: T
) -> RevocationStatus<'_> where
T: Into<Option<SystemTime>>,
Returns the User ID’s revocation status at time t
.
A User ID is revoked at time t
if:
- There is a live revocation at time
t
that is newer than all live self signatures at timet
.
Note: Certs and subkeys have different criteria from User IDs and User Attributes.
Note: this only returns whether this User ID is revoked; it does not imply anything about the Cert or other components.
Examples
use openpgp::policy::StandardPolicy;
let p = &StandardPolicy::new();
// Display the User IDs' revocation status.
for ua in cert.userids() {
eprintln!(" Revocation status of {}: {:?}",
String::from_utf8_lossy(ua.userid().value()),
ua.revocation_status(p, None));
}
sourcepub fn user_attribute(&self) -> &UserAttribute
pub fn user_attribute(&self) -> &UserAttribute
Returns a reference to the User Attribute.
This is just a type-specific alias for
ComponentBundle::component
.
Examples
// Display some information about the User Attributes
for ua in cert.user_attributes() {
eprintln!(" - {:?}", ua.user_attribute());
}
sourcepub fn revocation_status<T>(
&self,
policy: &dyn Policy,
t: T
) -> RevocationStatus<'_> where
T: Into<Option<SystemTime>>,
pub fn revocation_status<T>(
&self,
policy: &dyn Policy,
t: T
) -> RevocationStatus<'_> where
T: Into<Option<SystemTime>>,
Returns the User Attribute’s revocation status at time t
.
A User Attribute is revoked at time t
if:
- There is a live revocation at time
t
that is newer than all live self signatures at timet
.
Note: Certs and subkeys have different criteria from User IDs and User Attributes.
Note: this only returns whether this User Attribute is revoked; it does not imply anything about the Cert or other components.
Examples
use openpgp::policy::StandardPolicy;
let p = &StandardPolicy::new();
// Display the User Attributes' revocation status.
for (i, ua) in cert.user_attributes().enumerate() {
eprintln!(" Revocation status of User Attribute #{}: {:?}",
i, ua.revocation_status(p, None));
}
sourcepub fn unknown(&self) -> &Unknown
pub fn unknown(&self) -> &Unknown
Returns a reference to the unknown component.
This is just a type-specific alias for
ComponentBundle::component
.
Examples
// Display some information about the User Attributes
for u in cert.unknowns() {
eprintln!(" - {:?}", u.unknown());
}
Trait Implementations
sourceimpl<'a, P, R, R2> Clone for KeyAmalgamation<'a, P, R, R2> where
P: 'a + KeyParts,
R: 'a + KeyRole,
R2: Copy,
impl<'a, P, R, R2> Clone for KeyAmalgamation<'a, P, R, R2> where
P: 'a + KeyParts,
R: 'a + KeyRole,
R2: Copy,
sourceimpl<'a, P: Debug, R: Debug, R2: Debug> Debug for KeyAmalgamation<'a, P, R, R2> where
P: 'a + KeyParts,
R: 'a + KeyRole,
impl<'a, P: Debug, R: Debug, R2: Debug> Debug for KeyAmalgamation<'a, P, R, R2> where
P: 'a + KeyParts,
R: 'a + KeyRole,
sourceimpl<'a, P, R, R2> Deref for KeyAmalgamation<'a, P, R, R2> where
P: 'a + KeyParts,
R: 'a + KeyRole,
impl<'a, P, R, R2> Deref for KeyAmalgamation<'a, P, R, R2> where
P: 'a + KeyParts,
R: 'a + KeyRole,
sourceimpl<'a> From<&'a KeyAmalgamation<'a, PublicParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<&'a KeyAmalgamation<'a, PublicParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(p: &'a PrimaryKeyAmalgamation<'a, PublicParts>) -> Self
fn from(p: &'a PrimaryKeyAmalgamation<'a, PublicParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a KeyAmalgamation<'a, PublicParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<&'a KeyAmalgamation<'a, PublicParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(p: &'a SubordinateKeyAmalgamation<'a, PublicParts>) -> Self
fn from(p: &'a SubordinateKeyAmalgamation<'a, PublicParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a KeyAmalgamation<'a, PublicParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<&'a KeyAmalgamation<'a, PublicParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(p: &'a ErasedKeyAmalgamation<'a, PublicParts>) -> Self
fn from(p: &'a ErasedKeyAmalgamation<'a, PublicParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, PublicParts>
impl<'a> From<&'a KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, PublicParts>
sourcefn from(p: &'a PrimaryKeyAmalgamation<'a, SecretParts>) -> Self
fn from(p: &'a PrimaryKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<&'a KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(p: &'a PrimaryKeyAmalgamation<'a, SecretParts>) -> Self
fn from(p: &'a PrimaryKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, PublicParts>
impl<'a> From<&'a KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, PublicParts>
sourcefn from(p: &'a SubordinateKeyAmalgamation<'a, SecretParts>) -> Self
fn from(p: &'a SubordinateKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<&'a KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(p: &'a SubordinateKeyAmalgamation<'a, SecretParts>) -> Self
fn from(p: &'a SubordinateKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a KeyAmalgamation<'a, SecretParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, PublicParts>
impl<'a> From<&'a KeyAmalgamation<'a, SecretParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, PublicParts>
sourcefn from(p: &'a ErasedKeyAmalgamation<'a, SecretParts>) -> Self
fn from(p: &'a ErasedKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a KeyAmalgamation<'a, SecretParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<&'a KeyAmalgamation<'a, SecretParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(p: &'a ErasedKeyAmalgamation<'a, SecretParts>) -> Self
fn from(p: &'a ErasedKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a KeyAmalgamation<'a, UnspecifiedParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, PublicParts>
impl<'a> From<&'a KeyAmalgamation<'a, UnspecifiedParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, PublicParts>
sourcefn from(p: &'a PrimaryKeyAmalgamation<'a, UnspecifiedParts>) -> Self
fn from(p: &'a PrimaryKeyAmalgamation<'a, UnspecifiedParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a KeyAmalgamation<'a, UnspecifiedParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, PublicParts>
impl<'a> From<&'a KeyAmalgamation<'a, UnspecifiedParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, PublicParts>
sourcefn from(p: &'a SubordinateKeyAmalgamation<'a, UnspecifiedParts>) -> Self
fn from(p: &'a SubordinateKeyAmalgamation<'a, UnspecifiedParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<&'a KeyAmalgamation<'a, UnspecifiedParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, PublicParts>
impl<'a> From<&'a KeyAmalgamation<'a, UnspecifiedParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, PublicParts>
sourcefn from(p: &'a ErasedKeyAmalgamation<'a, UnspecifiedParts>) -> Self
fn from(p: &'a ErasedKeyAmalgamation<'a, UnspecifiedParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a, P: 'a + KeyParts> From<KeyAmalgamation<'a, P, PrimaryRole, ()>> for ErasedKeyAmalgamation<'a, P>
impl<'a, P: 'a + KeyParts> From<KeyAmalgamation<'a, P, PrimaryRole, ()>> for ErasedKeyAmalgamation<'a, P>
sourcefn from(ka: PrimaryKeyAmalgamation<'a, P>) -> Self
fn from(ka: PrimaryKeyAmalgamation<'a, P>) -> Self
Converts to this type from the input type.
sourceimpl<'a, P: 'a + KeyParts> From<KeyAmalgamation<'a, P, SubordinateRole, ()>> for ErasedKeyAmalgamation<'a, P>
impl<'a, P: 'a + KeyParts> From<KeyAmalgamation<'a, P, SubordinateRole, ()>> for ErasedKeyAmalgamation<'a, P>
sourcefn from(ka: SubordinateKeyAmalgamation<'a, P>) -> Self
fn from(ka: SubordinateKeyAmalgamation<'a, P>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, PublicParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<KeyAmalgamation<'a, PublicParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(p: PrimaryKeyAmalgamation<'a, PublicParts>) -> Self
fn from(p: PrimaryKeyAmalgamation<'a, PublicParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, PublicParts, PrimaryRole, ()>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<KeyAmalgamation<'a, PublicParts, PrimaryRole, ()>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(ka: PrimaryKeyAmalgamation<'a, PublicParts>) -> Self
fn from(ka: PrimaryKeyAmalgamation<'a, PublicParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, PublicParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<KeyAmalgamation<'a, PublicParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(p: SubordinateKeyAmalgamation<'a, PublicParts>) -> Self
fn from(p: SubordinateKeyAmalgamation<'a, PublicParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, PublicParts, SubordinateRole, ()>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<KeyAmalgamation<'a, PublicParts, SubordinateRole, ()>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(ka: SubordinateKeyAmalgamation<'a, PublicParts>) -> Self
fn from(ka: SubordinateKeyAmalgamation<'a, PublicParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, PublicParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<KeyAmalgamation<'a, PublicParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(p: ErasedKeyAmalgamation<'a, PublicParts>) -> Self
fn from(p: ErasedKeyAmalgamation<'a, PublicParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, PublicParts>
impl<'a> From<KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, PublicParts>
sourcefn from(p: PrimaryKeyAmalgamation<'a, SecretParts>) -> Self
fn from(p: PrimaryKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(p: PrimaryKeyAmalgamation<'a, SecretParts>) -> Self
fn from(p: PrimaryKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for ErasedKeyAmalgamation<'a, PublicParts>
impl<'a> From<KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for ErasedKeyAmalgamation<'a, PublicParts>
sourcefn from(ka: PrimaryKeyAmalgamation<'a, SecretParts>) -> Self
fn from(ka: PrimaryKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(ka: PrimaryKeyAmalgamation<'a, SecretParts>) -> Self
fn from(ka: PrimaryKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, PublicParts>
impl<'a> From<KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, PublicParts>
sourcefn from(p: SubordinateKeyAmalgamation<'a, SecretParts>) -> Self
fn from(p: SubordinateKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(p: SubordinateKeyAmalgamation<'a, SecretParts>) -> Self
fn from(p: SubordinateKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for ErasedKeyAmalgamation<'a, PublicParts>
impl<'a> From<KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for ErasedKeyAmalgamation<'a, PublicParts>
sourcefn from(ka: SubordinateKeyAmalgamation<'a, SecretParts>) -> Self
fn from(ka: SubordinateKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(ka: SubordinateKeyAmalgamation<'a, SecretParts>) -> Self
fn from(ka: SubordinateKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, SecretParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, PublicParts>
impl<'a> From<KeyAmalgamation<'a, SecretParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, PublicParts>
sourcefn from(p: ErasedKeyAmalgamation<'a, SecretParts>) -> Self
fn from(p: ErasedKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, SecretParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>
impl<'a> From<KeyAmalgamation<'a, SecretParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>
sourcefn from(p: ErasedKeyAmalgamation<'a, SecretParts>) -> Self
fn from(p: ErasedKeyAmalgamation<'a, SecretParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, UnspecifiedParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, PublicParts>
impl<'a> From<KeyAmalgamation<'a, UnspecifiedParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, PublicParts>
sourcefn from(p: PrimaryKeyAmalgamation<'a, UnspecifiedParts>) -> Self
fn from(p: PrimaryKeyAmalgamation<'a, UnspecifiedParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, UnspecifiedParts, PrimaryRole, ()>> for ErasedKeyAmalgamation<'a, PublicParts>
impl<'a> From<KeyAmalgamation<'a, UnspecifiedParts, PrimaryRole, ()>> for ErasedKeyAmalgamation<'a, PublicParts>
sourcefn from(ka: PrimaryKeyAmalgamation<'a, UnspecifiedParts>) -> Self
fn from(ka: PrimaryKeyAmalgamation<'a, UnspecifiedParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, UnspecifiedParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, PublicParts>
impl<'a> From<KeyAmalgamation<'a, UnspecifiedParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, PublicParts>
sourcefn from(p: SubordinateKeyAmalgamation<'a, UnspecifiedParts>) -> Self
fn from(p: SubordinateKeyAmalgamation<'a, UnspecifiedParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, UnspecifiedParts, SubordinateRole, ()>> for ErasedKeyAmalgamation<'a, PublicParts>
impl<'a> From<KeyAmalgamation<'a, UnspecifiedParts, SubordinateRole, ()>> for ErasedKeyAmalgamation<'a, PublicParts>
sourcefn from(ka: SubordinateKeyAmalgamation<'a, UnspecifiedParts>) -> Self
fn from(ka: SubordinateKeyAmalgamation<'a, UnspecifiedParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a> From<KeyAmalgamation<'a, UnspecifiedParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, PublicParts>
impl<'a> From<KeyAmalgamation<'a, UnspecifiedParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, PublicParts>
sourcefn from(p: ErasedKeyAmalgamation<'a, UnspecifiedParts>) -> Self
fn from(p: ErasedKeyAmalgamation<'a, UnspecifiedParts>) -> Self
Converts to this type from the input type.
sourceimpl<'a, P, R, R2> From<ValidKeyAmalgamation<'a, P, R, R2>> for KeyAmalgamation<'a, P, R, R2> where
P: 'a + KeyParts,
R: 'a + KeyRole,
R2: Copy,
impl<'a, P, R, R2> From<ValidKeyAmalgamation<'a, P, R, R2>> for KeyAmalgamation<'a, P, R, R2> where
P: 'a + KeyParts,
R: 'a + KeyRole,
R2: Copy,
sourcefn from(vka: ValidKeyAmalgamation<'a, P, R, R2>) -> Self
fn from(vka: ValidKeyAmalgamation<'a, P, R, R2>) -> Self
Converts to this type from the input type.
sourceimpl<'a> TryFrom<&'a KeyAmalgamation<'a, PublicParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, SecretParts>
impl<'a> TryFrom<&'a KeyAmalgamation<'a, PublicParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, SecretParts>
sourcefn try_from(p: &'a PrimaryKeyAmalgamation<'a, PublicParts>) -> Result<Self>
fn try_from(p: &'a PrimaryKeyAmalgamation<'a, PublicParts>) -> Result<Self>
Performs the conversion.
sourceimpl<'a> TryFrom<&'a KeyAmalgamation<'a, PublicParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, SecretParts>
impl<'a> TryFrom<&'a KeyAmalgamation<'a, PublicParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, SecretParts>
sourcefn try_from(p: &'a SubordinateKeyAmalgamation<'a, PublicParts>) -> Result<Self>
fn try_from(p: &'a SubordinateKeyAmalgamation<'a, PublicParts>) -> Result<Self>
Performs the conversion.
sourceimpl<'a> TryFrom<&'a KeyAmalgamation<'a, PublicParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, SecretParts>
impl<'a> TryFrom<&'a KeyAmalgamation<'a, PublicParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, SecretParts>
sourcefn try_from(p: &'a ErasedKeyAmalgamation<'a, PublicParts>) -> Result<Self>
fn try_from(p: &'a ErasedKeyAmalgamation<'a, PublicParts>) -> Result<Self>
Performs the conversion.
sourceimpl<'a> TryFrom<&'a KeyAmalgamation<'a, UnspecifiedParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, SecretParts>
impl<'a> TryFrom<&'a KeyAmalgamation<'a, UnspecifiedParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, SecretParts>
sourcefn try_from(p: &'a PrimaryKeyAmalgamation<'a, UnspecifiedParts>) -> Result<Self>
fn try_from(p: &'a PrimaryKeyAmalgamation<'a, UnspecifiedParts>) -> Result<Self>
Performs the conversion.
sourceimpl<'a> TryFrom<&'a KeyAmalgamation<'a, UnspecifiedParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, SecretParts>
impl<'a> TryFrom<&'a KeyAmalgamation<'a, UnspecifiedParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, SecretParts>
sourcefn try_from(
p: &'a SubordinateKeyAmalgamation<'a, UnspecifiedParts>
) -> Result<Self>
fn try_from(
p: &'a SubordinateKeyAmalgamation<'a, UnspecifiedParts>
) -> Result<Self>
Performs the conversion.
sourceimpl<'a> TryFrom<&'a KeyAmalgamation<'a, UnspecifiedParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, SecretParts>
impl<'a> TryFrom<&'a KeyAmalgamation<'a, UnspecifiedParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, SecretParts>
sourcefn try_from(p: &'a ErasedKeyAmalgamation<'a, UnspecifiedParts>) -> Result<Self>
fn try_from(p: &'a ErasedKeyAmalgamation<'a, UnspecifiedParts>) -> Result<Self>
Performs the conversion.
sourceimpl<'a, P, P2> TryFrom<KeyAmalgamation<'a, P, UnspecifiedRole, bool>> for PrimaryKeyAmalgamation<'a, P2> where
P: 'a + KeyParts,
P2: 'a + KeyParts,
impl<'a, P, P2> TryFrom<KeyAmalgamation<'a, P, UnspecifiedRole, bool>> for PrimaryKeyAmalgamation<'a, P2> where
P: 'a + KeyParts,
P2: 'a + KeyParts,
sourceimpl<'a, P, P2> TryFrom<KeyAmalgamation<'a, P, UnspecifiedRole, bool>> for SubordinateKeyAmalgamation<'a, P2> where
P: 'a + KeyParts,
P2: 'a + KeyParts,
impl<'a, P, P2> TryFrom<KeyAmalgamation<'a, P, UnspecifiedRole, bool>> for SubordinateKeyAmalgamation<'a, P2> where
P: 'a + KeyParts,
P2: 'a + KeyParts,
sourceimpl<'a> TryFrom<KeyAmalgamation<'a, PublicParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, SecretParts>
impl<'a> TryFrom<KeyAmalgamation<'a, PublicParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, SecretParts>
sourcefn try_from(p: PrimaryKeyAmalgamation<'a, PublicParts>) -> Result<Self>
fn try_from(p: PrimaryKeyAmalgamation<'a, PublicParts>) -> Result<Self>
Performs the conversion.
sourceimpl<'a> TryFrom<KeyAmalgamation<'a, PublicParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, SecretParts>
impl<'a> TryFrom<KeyAmalgamation<'a, PublicParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, SecretParts>
sourcefn try_from(p: SubordinateKeyAmalgamation<'a, PublicParts>) -> Result<Self>
fn try_from(p: SubordinateKeyAmalgamation<'a, PublicParts>) -> Result<Self>
Performs the conversion.
sourceimpl<'a> TryFrom<KeyAmalgamation<'a, PublicParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, SecretParts>
impl<'a> TryFrom<KeyAmalgamation<'a, PublicParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, SecretParts>
sourcefn try_from(p: ErasedKeyAmalgamation<'a, PublicParts>) -> Result<Self>
fn try_from(p: ErasedKeyAmalgamation<'a, PublicParts>) -> Result<Self>
Performs the conversion.
sourceimpl<'a> TryFrom<KeyAmalgamation<'a, UnspecifiedParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, SecretParts>
impl<'a> TryFrom<KeyAmalgamation<'a, UnspecifiedParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, SecretParts>
sourcefn try_from(p: PrimaryKeyAmalgamation<'a, UnspecifiedParts>) -> Result<Self>
fn try_from(p: PrimaryKeyAmalgamation<'a, UnspecifiedParts>) -> Result<Self>
Performs the conversion.
sourceimpl<'a> TryFrom<KeyAmalgamation<'a, UnspecifiedParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, SecretParts>
impl<'a> TryFrom<KeyAmalgamation<'a, UnspecifiedParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, SecretParts>
sourcefn try_from(p: SubordinateKeyAmalgamation<'a, UnspecifiedParts>) -> Result<Self>
fn try_from(p: SubordinateKeyAmalgamation<'a, UnspecifiedParts>) -> Result<Self>
Performs the conversion.
sourceimpl<'a> TryFrom<KeyAmalgamation<'a, UnspecifiedParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, SecretParts>
impl<'a> TryFrom<KeyAmalgamation<'a, UnspecifiedParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, SecretParts>
sourcefn try_from(p: ErasedKeyAmalgamation<'a, UnspecifiedParts>) -> Result<Self>
fn try_from(p: ErasedKeyAmalgamation<'a, UnspecifiedParts>) -> Result<Self>
Performs the conversion.
Auto Trait Implementations
impl<'a, P, R, R2> RefUnwindSafe for KeyAmalgamation<'a, P, R, R2> where
P: RefUnwindSafe,
R: RefUnwindSafe,
R2: RefUnwindSafe,
impl<'a, P, R, R2> Send for KeyAmalgamation<'a, P, R, R2> where
P: Sync,
R: Sync,
R2: Send,
impl<'a, P, R, R2> Sync for KeyAmalgamation<'a, P, R, R2> where
P: Sync,
R: Sync,
R2: Sync,
impl<'a, P, R, R2> Unpin for KeyAmalgamation<'a, P, R, R2> where
R2: Unpin,
impl<'a, P, R, R2> UnwindSafe for KeyAmalgamation<'a, P, R, R2> where
P: RefUnwindSafe,
R: RefUnwindSafe,
R2: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more