#![deny(clippy::pedantic)]use axum::{body::Body, handler::Handler, http::HeaderValue, response::Response, routing::get, Extension,Router,};use tower_layer::layer_fn;use crate::{git::Git, layers::logger::LoggingMiddleware};mod git;mod layers;mod methods;const CRATE_VERSION: &str = clap::crate_version!();#[tokio::main]async fn main() {let subscriber = tracing_subscriber::fmt();#[cfg(debug_assertions)]let subscriber = subscriber.pretty();subscriber.init();let app = Router::new().route("/", get(methods::index::handle)).route("/style.css",get(static_css(include_bytes!("../statics/style.css"))),).fallback(methods::repo::service.into_service()).layer(layer_fn(LoggingMiddleware)).layer(Extension(Git::default()));axum::Server::bind(&"127.0.0.1:3333".parse().unwrap()).serve(app.into_make_service_with_connect_info::<std::net::SocketAddr>()).await.unwrap();}fn static_css(content: &'static [u8]) -> impl Handler<()> {move || async move {let mut resp = Response::new(Body::from(content));resp.headers_mut().insert("Content-Type", HeaderValue::from_static("text/css"));resp}}