digitalocean_api/api/
account.rs1use super::{HasResponse, HasValue};
2use crate::method::Get;
3use crate::request::AccountRequest;
4use crate::request::Request;
5use crate::{ROOT_URL, STATIC_URL_ERROR};
6use getset::{Getters, Setters};
7use serde::Deserialize;
8use serde::Serialize;
9
10const ACCOUNT_SEGMENT: &str = "account";
11
12#[derive(Deserialize, Serialize, Debug, Clone, Getters, Setters)]
16#[get = "pub"]
17pub struct Account {
18 droplet_limit: usize,
20
21 floating_ip_limit: usize,
23
24 email: String,
26
27 uuid: String,
29
30 email_verified: bool,
32
33 status: String,
35
36 status_message: String,
39}
40
41impl Account {
42 pub fn get() -> AccountRequest<Get, Account> {
44 let mut url = ROOT_URL.clone();
45 url.path_segments_mut()
46 .expect(STATIC_URL_ERROR)
47 .push(ACCOUNT_SEGMENT);
48
49 Request::new(url)
50 }
51}
52
53#[derive(Deserialize, Serialize, Debug, Clone)]
55pub struct AccountResponse {
56 account: Account,
57}
58
59impl HasResponse for Account {
60 type Response = AccountResponse;
61}
62
63impl HasValue for AccountResponse {
64 type Value = Account;
65
66 fn value(self) -> Account {
67 self.account
68 }
69}