1#![no_std]
2#![doc = include_str!("../README.md")]
3
4#[cfg(feature = "std")]
5extern crate std;
6
7pub mod action_polling;
8pub mod buffer;
9pub mod pagination;
10pub mod rate_limit;
11pub mod transport;
12
13#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
15pub enum Provider {
16 Hetzner,
18}
19
20#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
22pub enum ApiFamily {
23 Cloud,
25 Dns,
27 Security,
29 Storage,
31 Extended,
33}
34
35#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
37pub enum Method {
38 Get,
40 Post,
42 Put,
44 Delete,
46}
47
48impl Method {
49 #[must_use]
51 pub const fn as_str(self) -> &'static str {
52 match self {
53 Self::Get => "GET",
54 Self::Post => "POST",
55 Self::Put => "PUT",
56 Self::Delete => "DELETE",
57 }
58 }
59}
60
61#[cfg(test)]
62mod tests {
63 use super::{ApiFamily, Method, Provider};
64
65 #[test]
66 fn exposes_provider_neutral_domains() {
67 assert_eq!(Provider::Hetzner, Provider::Hetzner);
68 assert_eq!(ApiFamily::Cloud, ApiFamily::Cloud);
69 assert_eq!(Method::Get, Method::Get);
70 assert_eq!(Method::Post.as_str(), "POST");
71 }
72}