[][src]Trait sequoia_openpgp::cert::amalgamation::key::PrimaryKey

pub trait PrimaryKey<'a, P, R> where
    P: 'a + KeyParts,
    R: 'a + KeyRole
{ fn primary(&self) -> bool; }

Whether the key is a primary key.

This trait is an implementation detail. It exists so that we can have a blanket implementation of ValidAmalgamation for ValidKeyAmalgamation, for instance, even though we only have specialized implementations of PrimaryKey.

Required methods

fn primary(&self) -> bool

Returns whether the key amalgamation is a primary key amalgamation.

Examples

// This works if the type is concrete:
let ka: PrimaryKeyAmalgamation<_> = cert.primary_key();
assert!(ka.primary());

// Or if it has been erased:
for (i, ka) in cert.keys().enumerate() {
    let ka: ErasedKeyAmalgamation<_> = ka;
    if i == 0 {
        // The primary key is always the first key returned by
        // `Cert::keys`.
        assert!(ka.primary());
    } else {
        // The rest are subkeys.
        assert!(! ka.primary());
    }
}
Loading content...

Implementors

impl<'a, P> PrimaryKey<'a, P, PrimaryRole> for PrimaryKeyAmalgamation<'a, P> where
    P: 'a + KeyParts
[src]

impl<'a, P> PrimaryKey<'a, P, PrimaryRole> for ValidPrimaryKeyAmalgamation<'a, P> where
    P: 'a + KeyParts
[src]

impl<'a, P> PrimaryKey<'a, P, SubordinateRole> for SubordinateKeyAmalgamation<'a, P> where
    P: 'a + KeyParts
[src]

impl<'a, P> PrimaryKey<'a, P, SubordinateRole> for ValidSubordinateKeyAmalgamation<'a, P> where
    P: 'a + KeyParts
[src]

impl<'a, P> PrimaryKey<'a, P, UnspecifiedRole> for ErasedKeyAmalgamation<'a, P> where
    P: 'a + KeyParts
[src]

impl<'a, P> PrimaryKey<'a, P, UnspecifiedRole> for ValidErasedKeyAmalgamation<'a, P> where
    P: 'a + KeyParts
[src]

Loading content...