database: convert CoinStatus to listcoins argument string

This commit is contained in:
jp1ac4 2024-02-06 07:51:39 +00:00
parent f5a15513f2
commit fa39e2ced4
No known key found for this signature in database
GPG Key ID: A7ACD32423568D7B

View File

@ -398,6 +398,17 @@ impl CoinStatus {
_ => None,
}
}
/// Converts a `CoinStatus` to its equivalent argument name
/// as used in the `listcoins` RPC command.
pub fn to_arg(&self) -> &'static str {
match self {
CoinStatus::Unconfirmed => "unconfirmed",
CoinStatus::Confirmed => "confirmed",
CoinStatus::Spending => "spending",
CoinStatus::Spent => "spent",
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Hash)]
@ -452,3 +463,28 @@ impl LabelItem {
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn coin_status_as_arg() {
assert_eq!(
CoinStatus::from_arg(CoinStatus::Unconfirmed.to_arg()),
Some(CoinStatus::Unconfirmed)
);
assert_eq!(
CoinStatus::from_arg(CoinStatus::Confirmed.to_arg()),
Some(CoinStatus::Confirmed)
);
assert_eq!(
CoinStatus::from_arg(CoinStatus::Spending.to_arg()),
Some(CoinStatus::Spending)
);
assert_eq!(
CoinStatus::from_arg(CoinStatus::Spent.to_arg()),
Some(CoinStatus::Spent)
);
}
}