File tree 2 files changed +28
-23
lines changed
2 files changed +28
-23
lines changed Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change 5
5
//! This crate is designed to be used as immutable, because of the `RpcApi`'s
6
6
//! immutable nature.
7
7
8
+ use crate :: { add_item, get_item} ;
8
9
use bitcoin:: { Address , Transaction , TxOut } ;
9
10
use bitcoin_simulator:: database:: Database ;
10
11
use std:: {
@@ -13,31 +14,9 @@ use std::{
13
14
} ;
14
15
15
16
mod errors;
17
+ mod macros;
16
18
mod transactions;
17
19
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
-
41
20
/// Mock Bitcoin ledger.
42
21
pub struct Ledger {
43
22
/// Private database interface. Data will be written to this temporary
You can’t perform that action at this time.
0 commit comments