Skip to content

Commit

Permalink
Merge pull request bitcoindevkit#1587 from evanlinjin/tx_update_map_a…
Browse files Browse the repository at this point in the history
…nchors

feat(core): add `TxUpdate::map_anchors`
  • Loading branch information
LLFourn authored Sep 4, 2024
2 parents 56970a9 + 7d2faa4 commit 60acb9b
Showing 1 changed file with 17 additions and 0 deletions.
17 changes: 17 additions & 0 deletions crates/core/src/tx_update.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,23 @@ impl<A> Default for TxUpdate<A> {
}

impl<A: Ord> TxUpdate<A> {
/// Transforms the [`TxUpdate`] to have `anchors` (`A`) of another type (`A2`).
///
/// This takes in a closure with signature `FnMut(A) -> A2` which is called for each anchor to
/// transform it.
pub fn map_anchors<A2: Ord, F: FnMut(A) -> A2>(self, mut map: F) -> TxUpdate<A2> {
TxUpdate {
txs: self.txs,
txouts: self.txouts,
anchors: self
.anchors
.into_iter()
.map(|(a, txid)| (map(a), txid))
.collect(),
seen_ats: self.seen_ats,
}
}

/// Extend this update with `other`.
pub fn extend(&mut self, other: TxUpdate<A>) {
self.txs.extend(other.txs);
Expand Down

0 comments on commit 60acb9b

Please sign in to comment.