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