1use crate::Lb;
2use crate::model::api::{FileUsage, GetUsageRequest};
3use crate::model::errors::LbResult;
4use crate::model::usage::get_usage;
5use serde::{Deserialize, Serialize};
6
7#[derive(Serialize, Deserialize, Debug, Clone)]
8pub struct UsageMetrics {
9 pub usages: Vec<FileUsage>,
10 pub server_usage: UsageItemMetric,
11 pub data_cap: UsageItemMetric,
12}
13
14#[derive(Serialize, Deserialize, PartialEq, Eq, Debug, Clone)]
15pub struct UsageItemMetric {
16 pub exact: u64,
17 pub readable: String,
18}
19
20impl Lb {
21 #[instrument(level = "debug", skip(self))]
29 pub async fn get_usage(&self) -> LbResult<UsageMetrics> {
30 let acc = self.get_account()?;
31 let usage = self.client.request(acc, GetUsageRequest {}).await?;
32 Ok(get_usage(usage))
33 }
34}