ayun-server 0.23.0

The RUST Framework for Web Rustceans.
Documentation
use crate::{traits::MiddlewareTrait, Middleware};
use ayun_config::config;
use tower_http::services::{ServeDir, ServeFile};

pub struct Asset;

impl MiddlewareTrait for Asset {
    fn handle() -> Middleware {
        Box::new(|router| {
            let config = config::<ayun_view::config::View>("view")?.asset;

            let serve_dir =
                ServeDir::new(config.path).not_found_service(ServeFile::new(&config.fallback));

            Ok(router.nest_service(
                &config.url,
                match config.gzip {
                    true => serve_dir.precompressed_gzip(),
                    false => serve_dir,
                },
            ))
        })
    }
}