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