xrpl_api/api/
account_info.rs1use crate::{AccountRoot, Request, RetrieveLedgerSpec, ReturnLedgerSpec, WithLedgerSpec};
4use serde::{Deserialize, Serialize};
5
6#[derive(Default, Debug, Clone, Serialize)]
7pub struct AccountInfoRequest {
8 pub account: String,
9 #[serde(skip_serializing_if = "Option::is_none")]
10 pub queue: Option<bool>,
11 #[serde(skip_serializing_if = "Option::is_none")]
12 pub signer_lists: Option<bool>,
13 #[serde(flatten)]
14 pub ledger_spec: RetrieveLedgerSpec,
15}
16
17impl Request for AccountInfoRequest {
18 type Response = AccountInfoResponse;
19
20 fn method(&self) -> String {
21 "account_info".to_owned()
22 }
23}
24
25impl WithLedgerSpec for AccountInfoRequest {
26 fn as_ledger_spec(&self) -> &RetrieveLedgerSpec {
27 &self.ledger_spec
28 }
29
30 fn as_ledger_spec_mut(&mut self) -> &mut RetrieveLedgerSpec {
31 &mut self.ledger_spec
32 }
33}
34
35impl AccountInfoRequest {
36 pub fn new(account: &str) -> Self {
37 Self {
38 account: account.to_owned(),
39 ..Default::default()
40 }
41 }
42
43 }
45
46#[derive(Debug, Deserialize)]
47pub struct AccountInfoResponse {
48 pub account_data: AccountRoot,
50 #[serde(flatten)]
51 pub ledger_spec: ReturnLedgerSpec,
52}