diff --git a/src/util/psbt/map/output.rs b/src/util/psbt/map/output.rs index 5f96559a..855524d5 100644 --- a/src/util/psbt/map/output.rs +++ b/src/util/psbt/map/output.rs @@ -158,7 +158,15 @@ impl TapTree { /// Returns [`TapTreeIter`] iterator for a taproot script tree, operating in DFS order over /// tree [`ScriptLeaf`]s. pub fn script_leaves(&self) -> TapTreeIter { - self.into_iter() + match (self.0.branch().len(), self.0.branch().last()) { + (1, Some(Some(root))) => { + TapTreeIter { + leaf_iter: root.leaves.iter() + } + } + // This should be unreachable as we Taptree is already finalized + _ => unreachable!("non-finalized tree builder inside TapTree"), + } } } @@ -177,23 +185,6 @@ impl<'tree> Iterator for TapTreeIter<'tree> { } } -impl<'tree> IntoIterator for &'tree TapTree { - type Item = &'tree ScriptLeaf; - type IntoIter = TapTreeIter<'tree>; - - fn into_iter(self) -> Self::IntoIter { - match (self.0.branch().len(), self.0.branch().last()) { - (1, Some(Some(root))) => { - TapTreeIter { - leaf_iter: root.leaves.iter() - } - } - // This should be unreachable as we Taptree is already finalized - _ => unreachable!("non-finalized tree builder inside TapTree"), - } - } -} - impl Output { pub(super) fn insert_pair(&mut self, pair: raw::Pair) -> Result<(), encode::Error> { let raw::Pair {