[][src]Struct sequoia_openpgp::cert::amalgamation::ComponentAmalgamation

pub struct ComponentAmalgamation<'a, C> { /* fields omitted */ }

A certificate component, its associated data, and useful methods.

Cert::userids, Cert::primary_userid, Cert::user_attributes, and Cert::unknowns return ComponentAmalgamations.

ComponentAmalgamation implements ValidateAmalgamation, which allows you to turn a ComponentAmalgamation into a ValidComponentAmalgamation using ComponentAmalgamation::with_policy.

See the module's documentation for more details.

Examples

// Iterate over all User IDs.
for ua in cert.userids() {
    // ua is a `ComponentAmalgamation`, specifically, a `UserIDAmalgamation`.
}

Implementations

impl<'a, P, R> ComponentAmalgamation<'a, Key<P, R>> where
    P: KeyParts,
    R: KeyRole
[src]

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

Changes the key's parts tag to PublicParts.

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_into_secret(
    self
) -> Result<ComponentAmalgamation<'a, Key<SecretParts, R>>>
[src]

Changes the key's parts tag to SecretParts.

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_into_unspecified(
    self
) -> ComponentAmalgamation<'a, Key<UnspecifiedParts, R>>
[src]

Changes the key's parts tag to UnspecifiedParts.

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

Changes the key's parts tag to UnspecifiedParts.

impl<'a, P, R> ComponentAmalgamation<'a, Key<P, R>> where
    P: KeyParts,
    R: KeyRole
[src]

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

Changes the key's role tag to PrimaryRole.

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_into_subordinate(
    self
) -> ComponentAmalgamation<'a, Key<P, SubordinateRole>>
[src]

Changes the key's role tag to SubordinateRole.

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_into_unspecified(
    self
) -> ComponentAmalgamation<'a, Key<P, UnspecifiedRole>>
[src]

Changes the key's role tag to UnspecifiedRole.

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

Changes the key's role tag to UnspecifiedRole.

impl<'a, C> ComponentAmalgamation<'a, C>[src]

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.

impl<'a> ComponentAmalgamation<'a, UserID>[src]

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

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

impl<'a> ComponentAmalgamation<'a, UserAttribute>[src]

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.

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

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

See UserIDAmalgamation::attest_certifications#examples.

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][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][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][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][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 attestations(&self) -> impl Iterator<Item = &Signature> + Send + Sync[src]

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

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

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, C> Clone for ComponentAmalgamation<'a, C>[src]

impl<'a, C: Debug> Debug for ComponentAmalgamation<'a, C>[src]

impl<'a, C> Deref for ComponentAmalgamation<'a, C>[src]

type Target = ComponentBundle<C>

The resulting type after dereferencing.

impl<'a, P> From<&'a ComponentAmalgamation<'a, Key<P, PrimaryRole>>> for &'a ComponentAmalgamation<'a, Key<P, SubordinateRole>> where
    P: KeyParts
[src]

impl<'a, P> From<&'a ComponentAmalgamation<'a, Key<P, PrimaryRole>>> for &'a ComponentAmalgamation<'a, Key<P, UnspecifiedRole>> where
    P: KeyParts
[src]

impl<'a, P> From<&'a ComponentAmalgamation<'a, Key<P, SubordinateRole>>> for &'a ComponentAmalgamation<'a, Key<P, PrimaryRole>> where
    P: KeyParts
[src]

impl<'a, P> From<&'a ComponentAmalgamation<'a, Key<P, SubordinateRole>>> for &'a ComponentAmalgamation<'a, Key<P, UnspecifiedRole>> where
    P: KeyParts
[src]

impl<'a, P> From<&'a ComponentAmalgamation<'a, Key<P, UnspecifiedRole>>> for &'a ComponentAmalgamation<'a, Key<P, PrimaryRole>> where
    P: KeyParts
[src]

impl<'a, P> From<&'a ComponentAmalgamation<'a, Key<P, UnspecifiedRole>>> for &'a ComponentAmalgamation<'a, Key<P, SubordinateRole>> where
    P: KeyParts
[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>> for &'a ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>> for &'a ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>> for &'a ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>> for &'a ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>[src]

impl<'a, R> From<&'a ComponentAmalgamation<'a, Key<PublicParts, R>>> for &'a ComponentAmalgamation<'a, Key<UnspecifiedParts, R>> where
    R: KeyRole
[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>> for &'a ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>> for &'a ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>> for &'a ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>> for &'a ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>> for &'a ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>> for &'a ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>> for &'a ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>> for &'a ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>> for &'a ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>> for &'a ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>> for &'a ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>> for &'a ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>[src]

impl<'a, R> From<&'a ComponentAmalgamation<'a, Key<SecretParts, R>>> for &'a ComponentAmalgamation<'a, Key<PublicParts, R>> where
    R: KeyRole
[src]

impl<'a, R> From<&'a ComponentAmalgamation<'a, Key<SecretParts, R>>> for &'a ComponentAmalgamation<'a, Key<UnspecifiedParts, R>> where
    R: KeyRole
[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>> for &'a ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>> for &'a ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>> for &'a ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>> for &'a ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>> for &'a ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>> for &'a ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>> for &'a ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>> for &'a ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>> for &'a ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>> for &'a ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>> for &'a ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>> for &'a ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>[src]

impl<'a, R> From<&'a ComponentAmalgamation<'a, Key<UnspecifiedParts, R>>> for &'a ComponentAmalgamation<'a, Key<PublicParts, R>> where
    R: KeyRole
[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>> for &'a ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>> for &'a ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>> for &'a ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>> for &'a ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>> for &'a ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>> for &'a ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>> for &'a ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>[src]

impl<'a> From<&'a ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>> for &'a ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>[src]

impl<'a, P> From<ComponentAmalgamation<'a, Key<P, PrimaryRole>>> for ComponentAmalgamation<'a, Key<P, SubordinateRole>> where
    P: KeyParts
[src]

impl<'a, P> From<ComponentAmalgamation<'a, Key<P, PrimaryRole>>> for ComponentAmalgamation<'a, Key<P, UnspecifiedRole>> where
    P: KeyParts
[src]

impl<'a, P> From<ComponentAmalgamation<'a, Key<P, SubordinateRole>>> for ComponentAmalgamation<'a, Key<P, PrimaryRole>> where
    P: KeyParts
[src]

impl<'a, P> From<ComponentAmalgamation<'a, Key<P, SubordinateRole>>> for ComponentAmalgamation<'a, Key<P, UnspecifiedRole>> where
    P: KeyParts
[src]

impl<'a, P> From<ComponentAmalgamation<'a, Key<P, UnspecifiedRole>>> for ComponentAmalgamation<'a, Key<P, PrimaryRole>> where
    P: KeyParts
[src]

impl<'a, P> From<ComponentAmalgamation<'a, Key<P, UnspecifiedRole>>> for ComponentAmalgamation<'a, Key<P, SubordinateRole>> where
    P: KeyParts
[src]

impl<'a> From<ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>> for ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>> for ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>> for ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>> for ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>[src]

impl<'a, R> From<ComponentAmalgamation<'a, Key<PublicParts, R>>> for ComponentAmalgamation<'a, Key<UnspecifiedParts, R>> where
    R: KeyRole
[src]

impl<'a> From<ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>> for ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>> for ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>> for ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>> for ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>> for ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>> for ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>> for ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>> for ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>> for ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>> for ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>> for ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>> for ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>[src]

impl<'a, R> From<ComponentAmalgamation<'a, Key<SecretParts, R>>> for ComponentAmalgamation<'a, Key<PublicParts, R>> where
    R: KeyRole
[src]

impl<'a, R> From<ComponentAmalgamation<'a, Key<SecretParts, R>>> for ComponentAmalgamation<'a, Key<UnspecifiedParts, R>> where
    R: KeyRole
[src]

impl<'a> From<ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>> for ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>> for ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>> for ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>> for ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>> for ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>> for ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>> for ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>> for ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>> for ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>> for ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>> for ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<UnspecifiedParts, PrimaryRole>>> for ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>[src]

impl<'a, R> From<ComponentAmalgamation<'a, Key<UnspecifiedParts, R>>> for ComponentAmalgamation<'a, Key<PublicParts, R>> where
    R: KeyRole
[src]

impl<'a> From<ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>> for ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>> for ComponentAmalgamation<'a, Key<PublicParts, UnspecifiedRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>> for ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<UnspecifiedParts, SubordinateRole>>> for ComponentAmalgamation<'a, Key<SecretParts, UnspecifiedRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>> for ComponentAmalgamation<'a, Key<PublicParts, PrimaryRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>> for ComponentAmalgamation<'a, Key<PublicParts, SubordinateRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>> for ComponentAmalgamation<'a, Key<SecretParts, PrimaryRole>>[src]

impl<'a> From<ComponentAmalgamation<'a, Key<UnspecifiedParts, UnspecifiedRole>>> for ComponentAmalgamation<'a, Key<SecretParts, SubordinateRole>>[src]

impl<'a, C: 'a> From<ValidComponentAmalgamation<'a, C>> for ComponentAmalgamation<'a, C>[src]

impl<'a, C: PartialEq> PartialEq<ComponentAmalgamation<'a, C>> for ComponentAmalgamation<'a, C>[src]

impl<'a, C> StructuralPartialEq for ComponentAmalgamation<'a, C>[src]

impl<'a, R> TryFrom<&'a ComponentAmalgamation<'a, Key<PublicParts, R>>> for &'a ComponentAmalgamation<'a, Key<SecretParts, R>> where
    R: KeyRole
[src]

type Error = Error

The type returned in the event of a conversion error.

impl<'a, R> TryFrom<&'a ComponentAmalgamation<'a, Key<UnspecifiedParts, R>>> for &'a ComponentAmalgamation<'a, Key<SecretParts, R>> where
    R: KeyRole
[src]

type Error = Error

The type returned in the event of a conversion error.

impl<'a, R> TryFrom<ComponentAmalgamation<'a, Key<PublicParts, R>>> for ComponentAmalgamation<'a, Key<SecretParts, R>> where
    R: KeyRole
[src]

type Error = Error

The type returned in the event of a conversion error.

impl<'a, R> TryFrom<ComponentAmalgamation<'a, Key<UnspecifiedParts, R>>> for ComponentAmalgamation<'a, Key<SecretParts, R>> where
    R: KeyRole
[src]

type Error = Error

The type returned in the event of a conversion error.

impl<'a, C> ValidateAmalgamation<'a, C> for ComponentAmalgamation<'a, C>[src]

type V = ValidComponentAmalgamation<'a, C>

The type returned by with_policy. Read more

Auto Trait Implementations

impl<'a, C> RefUnwindSafe for ComponentAmalgamation<'a, C> where
    C: RefUnwindSafe

impl<'a, C> Send for ComponentAmalgamation<'a, C> where
    C: Sync

impl<'a, C> Sync for ComponentAmalgamation<'a, C> where
    C: Sync

impl<'a, C> Unpin for ComponentAmalgamation<'a, C>

impl<'a, C> UnwindSafe for ComponentAmalgamation<'a, C> where
    C: RefUnwindSafe

Blanket Implementations

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

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

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

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

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

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

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.

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.

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.