Skip to content

Commit fa39e2c

Browse files
committed
database: convert CoinStatus to listcoins argument string
1 parent f5a1551 commit fa39e2c

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

src/database/mod.rs

+36
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,17 @@ impl CoinStatus {
398398
_ => None,
399399
}
400400
}
401+
402+
/// Converts a `CoinStatus` to its equivalent argument name
403+
/// as used in the `listcoins` RPC command.
404+
pub fn to_arg(&self) -> &'static str {
405+
match self {
406+
CoinStatus::Unconfirmed => "unconfirmed",
407+
CoinStatus::Confirmed => "confirmed",
408+
CoinStatus::Spending => "spending",
409+
CoinStatus::Spent => "spent",
410+
}
411+
}
401412
}
402413

403414
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
@@ -452,3 +463,28 @@ impl LabelItem {
452463
}
453464
}
454465
}
466+
467+
#[cfg(test)]
468+
mod tests {
469+
use super::*;
470+
471+
#[test]
472+
fn coin_status_as_arg() {
473+
assert_eq!(
474+
CoinStatus::from_arg(CoinStatus::Unconfirmed.to_arg()),
475+
Some(CoinStatus::Unconfirmed)
476+
);
477+
assert_eq!(
478+
CoinStatus::from_arg(CoinStatus::Confirmed.to_arg()),
479+
Some(CoinStatus::Confirmed)
480+
);
481+
assert_eq!(
482+
CoinStatus::from_arg(CoinStatus::Spending.to_arg()),
483+
Some(CoinStatus::Spending)
484+
);
485+
assert_eq!(
486+
CoinStatus::from_arg(CoinStatus::Spent.to_arg()),
487+
Some(CoinStatus::Spent)
488+
);
489+
}
490+
}

0 commit comments

Comments
 (0)