lair_keystore_api/lair_api/
list_entries.rs

1use super::*;
2
3/// Request a list of entries from lair.
4#[derive(Debug, serde::Serialize, serde::Deserialize)]
5#[serde(rename_all = "camelCase")]
6pub struct LairApiReqListEntries {
7    /// Msg id to relate request / response.
8    pub msg_id: Arc<str>,
9}
10
11impl LairApiReqListEntries {
12    /// Make a new list entries request.
13    pub fn new() -> Self {
14        Self {
15            msg_id: new_msg_id(),
16        }
17    }
18}
19
20impl std::convert::TryFrom<LairApiEnum> for LairApiReqListEntries {
21    type Error = one_err::OneErr;
22
23    fn try_from(e: LairApiEnum) -> Result<Self, Self::Error> {
24        if let LairApiEnum::ReqListEntries(s) = e {
25            Ok(s)
26        } else {
27            Err(format!("Invalid response type: {e:?}").into())
28        }
29    }
30}
31
32impl AsLairCodec for LairApiReqListEntries {
33    fn into_api_enum(self) -> LairApiEnum {
34        LairApiEnum::ReqListEntries(self)
35    }
36}
37
38/// Respond to a list entries request.
39#[derive(Debug, serde::Serialize, serde::Deserialize)]
40#[serde(rename_all = "camelCase")]
41pub struct LairApiResListEntries {
42    /// Msg id to relate request / response.
43    pub msg_id: Arc<str>,
44
45    /// List of lair entry list items.
46    pub entry_list: Vec<LairEntryInfo>,
47}
48
49impl std::convert::TryFrom<LairApiEnum> for LairApiResListEntries {
50    type Error = one_err::OneErr;
51
52    fn try_from(e: LairApiEnum) -> Result<Self, Self::Error> {
53        if let LairApiEnum::ResListEntries(s) = e {
54            Ok(s)
55        } else {
56            Err(format!("Invalid response type: {e:?}").into())
57        }
58    }
59}
60
61impl AsLairCodec for LairApiResListEntries {
62    fn into_api_enum(self) -> LairApiEnum {
63        LairApiEnum::ResListEntries(self)
64    }
65}
66
67impl AsLairRequest for LairApiReqListEntries {
68    type Response = LairApiResListEntries;
69}
70
71impl AsLairResponse for LairApiResListEntries {
72    type Request = LairApiReqListEntries;
73}