#![cfg_attr(docsrs, feature(doc_cfg))]
#![doc = include_str!("../README.md")]
#![warn(clippy::all, clippy::pedantic)]
#![allow(
clippy::needless_for_each,
clippy::missing_errors_doc,
clippy::cast_precision_loss,
clippy::match_wildcard_for_single_variants,
clippy::similar_names
)]
use serde::{Deserialize, Serialize};
use utoipa::ToSchema;
#[cfg(feature = "client")]
pub mod client;
#[cfg(feature = "server")]
pub mod server;
fn permissions_field(idx: u8) -> ordinary_types::Field {
ordinary_types::Field {
idx,
name: "permissions".into(),
kind: ordinary_types::Kind::List {
kind: Box::new(ordinary_types::Kind::Enum {
name: "permissions".into(),
opts: vec![
ordinary_types::EnumOpt {
idx: 0,
name: "admin".into(),
},
ordinary_types::EnumOpt {
idx: 1,
name: "read".into(),
},
ordinary_types::EnumOpt {
idx: 2,
name: "write".into(),
},
ordinary_types::EnumOpt {
idx: 3,
name: "update".into(),
},
ordinary_types::EnumOpt {
idx: 4,
name: "upload".into(),
},
ordinary_types::EnumOpt {
idx: 5,
name: "install".into(),
},
ordinary_types::EnumOpt {
idx: 6,
name: "deploy".into(),
},
ordinary_types::EnumOpt {
idx: 7,
name: "bridge".into(),
},
ordinary_types::EnumOpt {
idx: 8,
name: "kill".into(),
},
ordinary_types::EnumOpt {
idx: 9,
name: "erase".into(),
},
],
}),
},
..Default::default()
}
}
#[must_use]
pub fn api_invite_claims() -> Vec<ordinary_types::Field> {
vec![
ordinary_types::Field {
idx: 1,
name: "account".into(),
kind: ordinary_types::Kind::String,
..Default::default()
},
ordinary_types::Field {
idx: 2,
name: "domain".into(),
kind: ordinary_types::Kind::String,
..Default::default()
},
permissions_field(3),
]
}
#[must_use]
pub fn api_account_claims() -> Vec<ordinary_types::Field> {
vec![
ordinary_types::Field {
idx: 1,
name: "domain".into(),
kind: ordinary_types::Kind::String,
..Default::default()
},
permissions_field(2),
]
}
#[derive(Serialize, Deserialize, ToSchema)]
pub struct ApiInfo {
pub system_cpu_count: usize,
pub system_cpu_usage: String,
pub system_memory_total: String,
pub system_memory_used: String,
pub system_memory_free: String,
pub system_memory_available: String,
pub process_cpu_usage: String,
pub process_cpu_time: String,
#[serde(skip_serializing_if = "Option::is_none")]
#[serde(default)]
pub process_threads: Option<usize>,
pub process_memory_real: String,
pub process_memory_virtual: String,
pub process_disk_read: String,
pub process_disk_write: String,
}