Skip to content

Commit 807a5ec

Browse files
committed
macros: Move them to their own file.
1 parent 2f398d6 commit 807a5ec

File tree

2 files changed

+28
-23
lines changed

2 files changed

+28
-23
lines changed

src/ledger/macros.rs

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
//! # Macros
2+
//!
3+
//! Useful macros for Ledger crate.
4+
5+
/// Adds a new item to a `Vec` member, guarded by a `Cell`.
6+
#[macro_export]
7+
macro_rules! add_item {
8+
($member:expr, $item:expr) => {
9+
// Update item list.
10+
let mut items = $member.take();
11+
items.push($item);
12+
13+
// Commit new change.
14+
$member.set(items);
15+
};
16+
}
17+
/// Returns item `Vec` of a member, guarded by a `Cell`.
18+
#[macro_export]
19+
macro_rules! get_item {
20+
($member:expr) => {
21+
let items = $member.take();
22+
$member.set(items.clone());
23+
24+
return items;
25+
};
26+
}

src/ledger/mod.rs

+2-23
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
//! This crate is designed to be used as immutable, because of the `RpcApi`'s
66
//! immutable nature.
77
8+
use crate::{add_item, get_item};
89
use bitcoin::{Address, Transaction, TxOut};
910
use bitcoin_simulator::database::Database;
1011
use std::{
@@ -13,31 +14,9 @@ use std::{
1314
};
1415

1516
mod errors;
17+
mod macros;
1618
mod transactions;
1719

18-
/// Adds a new item to a `Vec` member, guarded by a `Cell`.
19-
#[macro_export]
20-
macro_rules! add_item {
21-
($member:expr, $item:expr) => {
22-
// Update item list.
23-
let mut items = $member.take();
24-
items.push($item);
25-
26-
// Commit new change.
27-
$member.set(items);
28-
};
29-
}
30-
/// Returns item `Vec` of a member, guarded by a `Cell`.
31-
#[macro_export]
32-
macro_rules! get_item {
33-
($member:expr) => {
34-
let items = $member.take();
35-
$member.set(items.clone());
36-
37-
return items;
38-
};
39-
}
40-
4120
/// Mock Bitcoin ledger.
4221
pub struct Ledger {
4322
/// Private database interface. Data will be written to this temporary

0 commit comments

Comments
 (0)