[][src]Struct miniscript::miniscript::iter::PkPkhIter

pub struct PkPkhIter<'a, Pk: 'a + MiniscriptKey, Ctx: 'a + ScriptContext> { /* fields omitted */ }

Iterator for traversing all MiniscriptKey's and hashes, depending what data are present in AST, starting from some specific node which constructs the iterator via [fn.Miniscript::iter_keys_and_hashes()] method.

Implementations

impl<'a, Pk: MiniscriptKey, Ctx: ScriptContext> PkPkhIter<'a, Pk, Ctx>[src]

pub fn pk_only(self) -> Option<Vec<Pk>>[src]

Returns a Option, listing all public keys found in AST starting from this Miniscript item, or None signifying that at least one key hash was found, making impossible to enumerate all source public keys from the script.

  • Differs from Miniscript::iter_pubkeys().collect() in the way that this function fails on the first met public key hash, while PkIter just ignores them.
  • Differs from Miniscript::iter_pubkeys_and_hashes().collect() in the way that it lists only public keys, and not their hashes

Unlike these functions, [fn.pk_only] returns an Option value with Vec, not an iterator, and consumes the iterator object.

Trait Implementations

impl<'a, Pk: MiniscriptKey, Ctx: ScriptContext> Iterator for PkPkhIter<'a, Pk, Ctx>[src]

type Item = PkPkh<Pk>

The type of the elements being iterated over.

Auto Trait Implementations

impl<'a, Pk, Ctx> RefUnwindSafe for PkPkhIter<'a, Pk, Ctx> where
    Ctx: RefUnwindSafe,
    Pk: RefUnwindSafe,
    <Pk as MiniscriptKey>::Hash: RefUnwindSafe

impl<'a, Pk, Ctx> Send for PkPkhIter<'a, Pk, Ctx> where
    Ctx: Send + Sync,
    Pk: Send + Sync,
    <Pk as MiniscriptKey>::Hash: Send + Sync

impl<'a, Pk, Ctx> Sync for PkPkhIter<'a, Pk, Ctx> where
    Ctx: Send + Sync,
    Pk: Send + Sync,
    <Pk as MiniscriptKey>::Hash: Send + Sync

impl<'a, Pk, Ctx> Unpin for PkPkhIter<'a, Pk, Ctx>

impl<'a, Pk, Ctx> UnwindSafe for PkPkhIter<'a, Pk, Ctx> where
    Ctx: RefUnwindSafe,
    Pk: RefUnwindSafe,
    <Pk as MiniscriptKey>::Hash: 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> From<T> for T[src]

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

impl<I> IntoIterator for I where
    I: Iterator
[src]

type Item = <I as Iterator>::Item

The type of the elements being iterated over.

type IntoIter = I

Which kind of iterator are we turning this into?

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.