Trait sequoia_openpgp::cert::amalgamation::key::PrimaryKey
source · pub trait PrimaryKey<'a, P, R>: Sealed{
// Required method
fn primary(&self) -> bool;
}
Expand description
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
.
§Sealed trait
This trait is sealed and cannot be implemented for types outside this crate.
Therefore it can be extended in a non-breaking way.
If you want to implement the trait inside the crate
you also need to implement the seal::Sealed
marker trait.
Required Methods§
sourcefn primary(&self) -> bool
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());
}
}