Struct sequoia_openpgp::cert::amalgamation::key::KeyAmalgamation[][src]

pub struct KeyAmalgamation<'a, P, R, R2> where
    P: 'a + KeyParts,
    R: 'a + KeyRole
{ /* fields omitted */ }

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

impl<'a, P> KeyAmalgamation<'a, P, PrimaryRole, ()> where
    P: KeyParts
[src]

pub fn parts_into_public(self) -> PrimaryKeyAmalgamation<'a, PublicParts>[src]

Changes the key’s parts tag to PublicParts.

pub fn parts_as_public(&'a self) -> &'a PrimaryKeyAmalgamation<'a, PublicParts>[src]

Changes the key’s parts tag to PublicParts.

pub fn parts_into_secret(
    self
) -> Result<PrimaryKeyAmalgamation<'a, SecretParts>>
[src]

Changes the key’s parts tag to SecretParts.

pub fn parts_as_secret(
    &'a self
) -> Result<&'a PrimaryKeyAmalgamation<'a, SecretParts>>
[src]

Changes the key’s parts tag to SecretParts.

pub fn parts_into_unspecified(
    self
) -> PrimaryKeyAmalgamation<'a, UnspecifiedParts>
[src]

Changes the key’s parts tag to UnspecifiedParts.

pub fn parts_as_unspecified(
    &'a self
) -> &PrimaryKeyAmalgamation<'a, UnspecifiedParts>
[src]

Changes the key’s parts tag to UnspecifiedParts.

impl<'a, P> KeyAmalgamation<'a, P, SubordinateRole, ()> where
    P: KeyParts
[src]

pub fn parts_into_public(self) -> SubordinateKeyAmalgamation<'a, PublicParts>[src]

Changes the key’s parts tag to PublicParts.

pub fn parts_as_public(
    &'a self
) -> &'a SubordinateKeyAmalgamation<'a, PublicParts>
[src]

Changes the key’s parts tag to PublicParts.

pub fn parts_into_secret(
    self
) -> Result<SubordinateKeyAmalgamation<'a, SecretParts>>
[src]

Changes the key’s parts tag to SecretParts.

pub fn parts_as_secret(
    &'a self
) -> Result<&'a SubordinateKeyAmalgamation<'a, SecretParts>>
[src]

Changes the key’s parts tag to SecretParts.

pub fn parts_into_unspecified(
    self
) -> SubordinateKeyAmalgamation<'a, UnspecifiedParts>
[src]

Changes the key’s parts tag to UnspecifiedParts.

pub fn parts_as_unspecified(
    &'a self
) -> &SubordinateKeyAmalgamation<'a, UnspecifiedParts>
[src]

Changes the key’s parts tag to UnspecifiedParts.

impl<'a, P> KeyAmalgamation<'a, P, UnspecifiedRole, bool> where
    P: KeyParts
[src]

pub fn parts_into_public(self) -> ErasedKeyAmalgamation<'a, PublicParts>[src]

Changes the key’s parts tag to PublicParts.

pub fn parts_as_public(&'a self) -> &'a ErasedKeyAmalgamation<'a, PublicParts>[src]

Changes the key’s parts tag to PublicParts.

pub fn parts_into_secret(self) -> Result<ErasedKeyAmalgamation<'a, SecretParts>>[src]

Changes the key’s parts tag to SecretParts.

pub fn parts_as_secret(
    &'a self
) -> Result<&'a ErasedKeyAmalgamation<'a, SecretParts>>
[src]

Changes the key’s parts tag to SecretParts.

pub fn parts_into_unspecified(
    self
) -> ErasedKeyAmalgamation<'a, UnspecifiedParts>
[src]

Changes the key’s parts tag to UnspecifiedParts.

pub fn parts_as_unspecified(
    &'a self
) -> &ErasedKeyAmalgamation<'a, UnspecifiedParts>
[src]

Changes the key’s parts tag to UnspecifiedParts.

impl<'a, P, R, R2> KeyAmalgamation<'a, P, R, R2> where
    P: 'a + KeyParts,
    R: 'a + KeyRole
[src]

pub fn component_amalgamation(&self) -> &ComponentAmalgamation<'a, Key<P, R>>[src]

Returns the KeyAmalgamation’s ComponentAmalgamation.

pub fn key(&self) -> &'a Key<P, R>[src]

Returns the KeyAmalgamation’s key.

Normally, a type implementing KeyAmalgamation eventually derefs to a Key, however, this method provides a more accurate lifetime. See the documentation for ComponentAmalgamation::component for an explanation.

Methods from Deref<Target = ComponentAmalgamation<'a, Key<P, R>>>

pub fn parts_as_public(
    &'a self
) -> &'a ComponentAmalgamation<'a, Key<PublicParts, R>>
[src]

Changes the key’s parts tag to PublicParts.

pub fn parts_as_secret(
    &'a self
) -> Result<&'a ComponentAmalgamation<'a, Key<SecretParts, R>>>
[src]

Changes the key’s parts tag to SecretParts.

pub fn parts_as_unspecified(
    &'a self
) -> &ComponentAmalgamation<'a, Key<UnspecifiedParts, R>>
[src]

Changes the key’s parts tag to UnspecifiedParts.

pub fn role_as_primary(
    &'a self
) -> &'a ComponentAmalgamation<'a, Key<P, PrimaryRole>>
[src]

Changes the key’s role tag to PrimaryRole.

pub fn role_as_subordinate(
    &'a self
) -> &'a ComponentAmalgamation<'a, Key<P, SubordinateRole>>
[src]

Changes the key’s role tag to SubordinateRole.

pub fn role_as_unspecified(
    &'a self
) -> &'a ComponentAmalgamation<'a, Key<P, UnspecifiedRole>>
[src]

Changes the key’s role tag to UnspecifiedRole.

pub fn cert(&self) -> &'a Cert[src]

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));
}

pub fn bundle(&self) -> &'a ComponentBundle<C>[src]

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<_>>>();

pub fn component(&self) -> &'a C[src]

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.

pub fn self_signatures(
    &self
) -> impl Iterator<Item = &'a Signature> + Send + Sync
[src]

The component’s self-signatures.

pub fn certifications(
    &self
) -> impl Iterator<Item = &'a Signature> + Send + Sync
[src]

The component’s third-party certifications.

pub fn self_revocations(
    &self
) -> impl Iterator<Item = &'a Signature> + Send + Sync
[src]

The component’s revocations that were issued by the certificate holder.

pub fn other_revocations(
    &self
) -> impl Iterator<Item = &'a Signature> + Send + Sync
[src]

The component’s revocations that were issued by other certificates.

pub fn signatures(&self) -> impl Iterator<Item = &'a Signature> + Send + Sync[src]

Returns all of the component’s signatures.

pub fn userid(&self) -> &'a UserID[src]

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.

pub fn user_attribute(&self) -> &'a UserAttribute[src]

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.

Methods from Deref<Target = ComponentBundle<C>>

pub fn parts_as_public(&self) -> &KeyBundle<PublicParts, R>[src]

Changes the key’s parts tag to PublicParts.

pub fn parts_as_secret(&self) -> Result<&KeyBundle<SecretParts, R>>[src]

Changes the key’s parts tag to SecretParts.

pub fn parts_as_unspecified(&self) -> &KeyBundle<UnspecifiedParts, R>[src]

Changes the key’s parts tag to UnspecifiedParts.

pub fn role_as_primary(&self) -> &KeyBundle<P, PrimaryRole>[src]

Changes the key’s role tag to PrimaryRole.

pub fn role_as_subordinate(&self) -> &KeyBundle<P, SubordinateRole>[src]

Changes the key’s role tag to SubordinateRole.

pub fn role_as_unspecified(&self) -> &KeyBundle<P, UnspecifiedRole>[src]

Changes the key’s role tag to UnspecifiedRole.

pub fn component(&self) -> &C[src]

Returns a reference to the bundle’s component.

Examples

// Display some information about any unknown components.
for u in cert.unknowns() {
    eprintln!(" - {:?}", u.component());
}

pub fn binding_signature<T>(
    &self,
    policy: &dyn Policy,
    t: T
) -> Result<&Signature> where
    T: Into<Option<SystemTime>>, 
[src]

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));
}

pub fn self_signatures(&self) -> &[Signature]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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());
}

pub fn certifications(&self) -> &[Signature]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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());
}

pub fn self_revocations(&self) -> &[Signature]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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());
}

pub fn other_revocations(&self) -> &[Signature]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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());
}

pub fn signatures(&self) -> impl Iterator<Item = &Signature> + Send + Sync[src]

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, 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());
}

pub fn key(&self) -> &Key<P, R>[src]

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());
}

pub fn revocation_status<T>(
    &self,
    policy: &dyn Policy,
    t: T
) -> RevocationStatus<'_> where
    T: Into<Option<SystemTime>>, 
[src]

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 time t, 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));
}

pub fn userid(&self) -> &UserID[src]

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());
}

pub fn revocation_status<T>(
    &self,
    policy: &dyn Policy,
    t: T
) -> RevocationStatus<'_> where
    T: Into<Option<SystemTime>>, 
[src]

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 time t.

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));
}

pub fn user_attribute(&self) -> &UserAttribute[src]

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());
}

pub fn revocation_status<T>(
    &self,
    policy: &dyn Policy,
    t: T
) -> RevocationStatus<'_> where
    T: Into<Option<SystemTime>>, 
[src]

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 time t.

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));
}

pub fn unknown(&self) -> &Unknown[src]

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

impl<'a, P, R, R2> Clone for KeyAmalgamation<'a, P, R, R2> where
    P: 'a + KeyParts,
    R: 'a + KeyRole,
    R2: Copy
[src]

fn clone(&self) -> Self[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl<'a, P: Debug, R: Debug, R2: Debug> Debug for KeyAmalgamation<'a, P, R, R2> where
    P: 'a + KeyParts,
    R: 'a + KeyRole
[src]

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

Formats the value using the given formatter. Read more

impl<'a, P, R, R2> Deref for KeyAmalgamation<'a, P, R, R2> where
    P: 'a + KeyParts,
    R: 'a + KeyRole
[src]

type Target = ComponentAmalgamation<'a, Key<P, R>>

The resulting type after dereferencing.

fn deref(&self) -> &Self::Target[src]

Dereferences the value.

impl<'a> From<&'a KeyAmalgamation<'a, PublicParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(p: &'a PrimaryKeyAmalgamation<'a, PublicParts>) -> Self[src]

Performs the conversion.

impl<'a> From<&'a KeyAmalgamation<'a, PublicParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(p: &'a SubordinateKeyAmalgamation<'a, PublicParts>) -> Self[src]

Performs the conversion.

impl<'a> From<&'a KeyAmalgamation<'a, PublicParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(p: &'a ErasedKeyAmalgamation<'a, PublicParts>) -> Self[src]

Performs the conversion.

impl<'a> From<&'a KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, PublicParts>[src]

fn from(p: &'a PrimaryKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<&'a KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(p: &'a PrimaryKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<&'a KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, PublicParts>[src]

fn from(p: &'a SubordinateKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<&'a KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(p: &'a SubordinateKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<&'a KeyAmalgamation<'a, SecretParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, PublicParts>[src]

fn from(p: &'a ErasedKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<&'a KeyAmalgamation<'a, SecretParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(p: &'a ErasedKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<&'a KeyAmalgamation<'a, UnspecifiedParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, PublicParts>[src]

fn from(p: &'a PrimaryKeyAmalgamation<'a, UnspecifiedParts>) -> Self[src]

Performs the conversion.

impl<'a> From<&'a KeyAmalgamation<'a, UnspecifiedParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, PublicParts>[src]

fn from(p: &'a SubordinateKeyAmalgamation<'a, UnspecifiedParts>) -> Self[src]

Performs the conversion.

impl<'a> From<&'a KeyAmalgamation<'a, UnspecifiedParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, PublicParts>[src]

fn from(p: &'a ErasedKeyAmalgamation<'a, UnspecifiedParts>) -> Self[src]

Performs the conversion.

impl<'a, P: 'a + KeyParts> From<KeyAmalgamation<'a, P, PrimaryRole, ()>> for ErasedKeyAmalgamation<'a, P>[src]

fn from(ka: PrimaryKeyAmalgamation<'a, P>) -> Self[src]

Performs the conversion.

impl<'a, P: 'a + KeyParts> From<KeyAmalgamation<'a, P, SubordinateRole, ()>> for ErasedKeyAmalgamation<'a, P>[src]

fn from(ka: SubordinateKeyAmalgamation<'a, P>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, PublicParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(p: PrimaryKeyAmalgamation<'a, PublicParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, PublicParts, PrimaryRole, ()>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(ka: PrimaryKeyAmalgamation<'a, PublicParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, PublicParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(p: SubordinateKeyAmalgamation<'a, PublicParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, PublicParts, SubordinateRole, ()>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(ka: SubordinateKeyAmalgamation<'a, PublicParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, PublicParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(p: ErasedKeyAmalgamation<'a, PublicParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, PublicParts>[src]

fn from(p: PrimaryKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(p: PrimaryKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for ErasedKeyAmalgamation<'a, PublicParts>[src]

fn from(ka: PrimaryKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, SecretParts, PrimaryRole, ()>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(ka: PrimaryKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, PublicParts>[src]

fn from(p: SubordinateKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(p: SubordinateKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for ErasedKeyAmalgamation<'a, PublicParts>[src]

fn from(ka: SubordinateKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, SecretParts, SubordinateRole, ()>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(ka: SubordinateKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, SecretParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, PublicParts>[src]

fn from(p: ErasedKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, SecretParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, UnspecifiedParts>[src]

fn from(p: ErasedKeyAmalgamation<'a, SecretParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, UnspecifiedParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, PublicParts>[src]

fn from(p: PrimaryKeyAmalgamation<'a, UnspecifiedParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, UnspecifiedParts, PrimaryRole, ()>> for ErasedKeyAmalgamation<'a, PublicParts>[src]

fn from(ka: PrimaryKeyAmalgamation<'a, UnspecifiedParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, UnspecifiedParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, PublicParts>[src]

fn from(p: SubordinateKeyAmalgamation<'a, UnspecifiedParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, UnspecifiedParts, SubordinateRole, ()>> for ErasedKeyAmalgamation<'a, PublicParts>[src]

fn from(ka: SubordinateKeyAmalgamation<'a, UnspecifiedParts>) -> Self[src]

Performs the conversion.

impl<'a> From<KeyAmalgamation<'a, UnspecifiedParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, PublicParts>[src]

fn from(p: ErasedKeyAmalgamation<'a, UnspecifiedParts>) -> Self[src]

Performs the conversion.

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
[src]

fn from(vka: ValidKeyAmalgamation<'a, P, R, R2>) -> Self[src]

Performs the conversion.

impl<'a> TryFrom<&'a KeyAmalgamation<'a, PublicParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, SecretParts>[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(p: &'a PrimaryKeyAmalgamation<'a, PublicParts>) -> Result<Self>[src]

Performs the conversion.

impl<'a> TryFrom<&'a KeyAmalgamation<'a, PublicParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, SecretParts>[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(p: &'a SubordinateKeyAmalgamation<'a, PublicParts>) -> Result<Self>[src]

Performs the conversion.

impl<'a> TryFrom<&'a KeyAmalgamation<'a, PublicParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, SecretParts>[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(p: &'a ErasedKeyAmalgamation<'a, PublicParts>) -> Result<Self>[src]

Performs the conversion.

impl<'a> TryFrom<&'a KeyAmalgamation<'a, UnspecifiedParts, PrimaryRole, ()>> for &'a PrimaryKeyAmalgamation<'a, SecretParts>[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(p: &'a PrimaryKeyAmalgamation<'a, UnspecifiedParts>) -> Result<Self>[src]

Performs the conversion.

impl<'a> TryFrom<&'a KeyAmalgamation<'a, UnspecifiedParts, SubordinateRole, ()>> for &'a SubordinateKeyAmalgamation<'a, SecretParts>[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(
    p: &'a SubordinateKeyAmalgamation<'a, UnspecifiedParts>
) -> Result<Self>
[src]

Performs the conversion.

impl<'a> TryFrom<&'a KeyAmalgamation<'a, UnspecifiedParts, UnspecifiedRole, bool>> for &'a ErasedKeyAmalgamation<'a, SecretParts>[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(p: &'a ErasedKeyAmalgamation<'a, UnspecifiedParts>) -> Result<Self>[src]

Performs the conversion.

impl<'a, P, P2> TryFrom<KeyAmalgamation<'a, P, UnspecifiedRole, bool>> for PrimaryKeyAmalgamation<'a, P2> where
    P: 'a + KeyParts,
    P2: 'a + KeyParts
[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(ka: ErasedKeyAmalgamation<'a, P>) -> Result<Self>[src]

Performs the conversion.

impl<'a, P, P2> TryFrom<KeyAmalgamation<'a, P, UnspecifiedRole, bool>> for SubordinateKeyAmalgamation<'a, P2> where
    P: 'a + KeyParts,
    P2: 'a + KeyParts
[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(ka: ErasedKeyAmalgamation<'a, P>) -> Result<Self>[src]

Performs the conversion.

impl<'a> TryFrom<KeyAmalgamation<'a, PublicParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, SecretParts>[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(p: PrimaryKeyAmalgamation<'a, PublicParts>) -> Result<Self>[src]

Performs the conversion.

impl<'a> TryFrom<KeyAmalgamation<'a, PublicParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, SecretParts>[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(p: SubordinateKeyAmalgamation<'a, PublicParts>) -> Result<Self>[src]

Performs the conversion.

impl<'a> TryFrom<KeyAmalgamation<'a, PublicParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, SecretParts>[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(p: ErasedKeyAmalgamation<'a, PublicParts>) -> Result<Self>[src]

Performs the conversion.

impl<'a> TryFrom<KeyAmalgamation<'a, UnspecifiedParts, PrimaryRole, ()>> for PrimaryKeyAmalgamation<'a, SecretParts>[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(p: PrimaryKeyAmalgamation<'a, UnspecifiedParts>) -> Result<Self>[src]

Performs the conversion.

impl<'a> TryFrom<KeyAmalgamation<'a, UnspecifiedParts, SubordinateRole, ()>> for SubordinateKeyAmalgamation<'a, SecretParts>[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(p: SubordinateKeyAmalgamation<'a, UnspecifiedParts>) -> Result<Self>[src]

Performs the conversion.

impl<'a> TryFrom<KeyAmalgamation<'a, UnspecifiedParts, UnspecifiedRole, bool>> for ErasedKeyAmalgamation<'a, SecretParts>[src]

type Error = Error

The type returned in the event of a conversion error.

fn try_from(p: ErasedKeyAmalgamation<'a, UnspecifiedParts>) -> Result<Self>[src]

Performs the conversion.

Auto Trait Implementations

impl<'a, P, R, R2> !RefUnwindSafe for KeyAmalgamation<'a, P, R, R2>

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>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> DynClone for T where
    T: Clone
[src]

pub fn __clone_box(&self, Private) -> *mut ()[src]

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.