1#![cfg_attr(docsrs, feature(doc_cfg))]
2#![doc = include_str!("../README.md")]
3#![warn(clippy::all, clippy::pedantic)]
4#![allow(
5 clippy::needless_for_each,
6 clippy::missing_errors_doc,
7 clippy::cast_precision_loss,
8 clippy::match_wildcard_for_single_variants,
9 clippy::similar_names
10)]
11
12#[cfg(feature = "client")]
14pub mod client;
15
16#[cfg(feature = "server")]
18pub mod server;
19
20fn permissions_field(idx: u8) -> ordinary_types::Field {
21 ordinary_types::Field {
22 idx,
23 name: "permissions".into(),
24 kind: ordinary_types::Kind::List {
25 kind: Box::new(ordinary_types::Kind::Enum {
26 name: "permissions".into(),
27 opts: vec![
28 ordinary_types::EnumOpt {
29 idx: 0,
30 name: "admin".into(),
31 },
32 ordinary_types::EnumOpt {
33 idx: 1,
34 name: "read".into(),
35 },
36 ordinary_types::EnumOpt {
37 idx: 2,
38 name: "write".into(),
39 },
40 ordinary_types::EnumOpt {
41 idx: 3,
42 name: "update".into(),
43 },
44 ordinary_types::EnumOpt {
45 idx: 4,
46 name: "upload".into(),
47 },
48 ordinary_types::EnumOpt {
49 idx: 5,
50 name: "install".into(),
51 },
52 ordinary_types::EnumOpt {
53 idx: 6,
54 name: "deploy".into(),
55 },
56 ordinary_types::EnumOpt {
57 idx: 7,
58 name: "bridge".into(),
59 },
60 ordinary_types::EnumOpt {
61 idx: 8,
62 name: "kill".into(),
63 },
64 ordinary_types::EnumOpt {
65 idx: 9,
66 name: "erase".into(),
67 },
68 ],
69 }),
70 },
71 ..Default::default()
72 }
73}
74
75#[must_use]
76pub fn api_invite_claims() -> Vec<ordinary_types::Field> {
77 vec![
78 ordinary_types::Field {
79 idx: 1,
80 name: "account".into(),
81 kind: ordinary_types::Kind::String,
82 ..Default::default()
83 },
84 ordinary_types::Field {
85 idx: 2,
86 name: "domain".into(),
87 kind: ordinary_types::Kind::String,
88 ..Default::default()
89 },
90 permissions_field(3),
91 ]
92}
93
94#[must_use]
95pub fn api_account_claims() -> Vec<ordinary_types::Field> {
96 vec![
97 ordinary_types::Field {
98 idx: 1,
99 name: "domain".into(),
100 kind: ordinary_types::Kind::String,
101 ..Default::default()
102 },
103 permissions_field(2),
104 ]
105}