From 0dce6d0698f71728b0721ae25e911e2a2ca76c0b Mon Sep 17 00:00:00 2001 From: "Neal H. Walfield" Date: Sun, 1 Mar 2020 15:19:36 +0100 Subject: openpgp: Also add KeyIter::subkeys to ValidKeyIter. - Add an equivalent method to `KeyIter::subkeys` to `ValidKeyIter`. --- openpgp/src/cert/keyiter.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/openpgp/src/cert/keyiter.rs b/openpgp/src/cert/keyiter.rs index b8ebb5a3..006dce53 100644 --- a/openpgp/src/cert/keyiter.rs +++ b/openpgp/src/cert/keyiter.rs @@ -912,6 +912,29 @@ impl<'a, P, R> ValidKeyIter<'a, P, R> self.key_handles.extend(h.map(|h| h.clone())); self } + + /// Changes the iterator to skip the primary key. + pub fn subkeys(self) -> ValidKeyIter<'a, P, key::SubordinateRole> { + ValidKeyIter { + cert: self.cert, + primary: true, + subkey_iter: self.subkey_iter, + + time: self.time, + policy: self.policy, + + // The filters. + secret: self.secret, + unencrypted_secret: self.unencrypted_secret, + key_handles: self.key_handles, + flags: self.flags, + alive: self.alive, + revoked: self.revoked, + + _p: std::marker::PhantomData, + _r: std::marker::PhantomData, + } + } } pub struct KeyBundleIter<'a, P: key::KeyParts, R: key::KeyRole> { -- cgit v1.2.3