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