pub use constants::*;
pub use types::*;
pub(crate) mod constants {
pub const STANDARD_OAUTH_TOKEN_PATH: &str = "oauth/token";
}
pub(crate) mod types {
pub use async_trait::async_trait;
use axum::routing::IntoMakeService;
pub use hyper::server::conn::AddrIncoming;
pub type AxumServer =
axum::Server<hyper::server::conn::AddrIncoming, IntoMakeService<axum::Router>>;
pub type HostPiece = [u8; 4];
pub type PortPiece = u16;
pub type SocketAddrPieces = (HostPiece, PortPiece);
#[derive(Clone, Debug, Hash, PartialEq, serde::Deserialize, serde::Serialize)]
pub enum ServerHost {
Std(HostPiece),
Str(String),
}
impl ServerHost {
pub fn extract(data: String) -> Self {
Self::Std(
scsys::extract::Extractor::new('.', data)
.extract()
.try_into()
.ok()
.unwrap(),
)
}
}
impl Default for ServerHost {
fn default() -> Self {
Self::Std([0, 0, 0, 0])
}
}
}