zebra_rpc/methods/types/
unified_address.rs
1#[derive(Clone, Debug, Eq, PartialEq, serde::Serialize, serde::Deserialize)]
5pub struct Response {
6 #[serde(skip_serializing_if = "Option::is_none")]
7 orchard: Option<String>,
8 #[serde(skip_serializing_if = "Option::is_none")]
9 sapling: Option<String>,
10 #[serde(skip_serializing_if = "Option::is_none")]
11 p2pkh: Option<String>,
12 #[serde(skip_serializing_if = "Option::is_none")]
13 p2sh: Option<String>,
14}
15
16impl Default for Response {
17 fn default() -> Self {
18 Self {
19 orchard: Some("orchard address if any".to_string()),
20 sapling: Some("sapling address if any".to_string()),
21 p2pkh: Some("p2pkh address if any".to_string()),
22 p2sh: Some("p2sh address if any".to_string()),
23 }
24 }
25}
26
27impl Response {
28 pub fn new(orchard: String, sapling: String, p2pkh: String, p2sh: String) -> Response {
30 Response {
31 orchard: if orchard.is_empty() {
32 None
33 } else {
34 Some(orchard)
35 },
36 sapling: if sapling.is_empty() {
37 None
38 } else {
39 Some(sapling)
40 },
41 p2pkh: if p2pkh.is_empty() { None } else { Some(p2pkh) },
42 p2sh: if p2sh.is_empty() { None } else { Some(p2sh) },
43 }
44 }
45
46 #[cfg(test)]
47 pub fn orchard(&self) -> Option<String> {
49 self.orchard.clone()
50 }
51
52 #[cfg(test)]
53 pub fn sapling(&self) -> Option<String> {
55 self.sapling.clone()
56 }
57
58 #[cfg(test)]
59 pub fn p2pkh(&self) -> Option<String> {
61 self.p2pkh.clone()
62 }
63
64 #[cfg(test)]
65 pub fn p2sh(&self) -> Option<String> {
67 self.p2sh.clone()
68 }
69}