rustdcr/dcrjson/
cmd_types.rs

1//! Houses all JSON command types
2
3use std::fmt;
4
5use serde::{Deserialize, Serialize};
6
7/// EstimateSmartFeeMode defines estimation mode to be used with
8/// the estimatesmartfee command.
9#[derive(Debug, Deserialize)]
10pub enum EstimateSmartFeeMode {
11    Economical,
12    Conservative,
13}
14
15impl Serialize for EstimateSmartFeeMode {
16    fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
17    where
18        S: serde::Serializer,
19    {
20        match self {
21            EstimateSmartFeeMode::Conservative => {
22                serializer.serialize_str(&format!("{}", EstimateSmartFeeMode::Conservative))
23            }
24            EstimateSmartFeeMode::Economical => {
25                serializer.serialize_str(&format!("{}", EstimateSmartFeeMode::Economical))
26            }
27        }
28    }
29}
30
31impl fmt::Display for EstimateSmartFeeMode {
32    fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
33        match *self {
34            EstimateSmartFeeMode::Conservative => write!(f, "conservative"),
35            EstimateSmartFeeMode::Economical => write!(f, "economical"),
36        }
37    }
38}