use std::{error::Error, net::SocketAddr};
use axum::Router;
use axum_image_endpoint::{image_app::image_app, image_app_options::ImageAppOptions};
use tokio::net::TcpListener;
use tower_http::services::{ServeDir, ServeFile};
#[tokio::main]
async fn main() -> Result<(), Box<dyn Error>> {
let app = image_app(ImageAppOptions::default())?;
let serve_dir = ServeDir::new("./examples/dist")
.not_found_service(ServeFile::new("./examples/dist/index.html"));
let router = Router::new().fallback_service(serve_dir);
let router = router.merge(app);
let addr = SocketAddr::from(([127, 0, 0, 1], 3000));
let listener = TcpListener::bind(addr).await?;
dbg!(listener.local_addr()?);
axum::serve(listener, router).await?;
Ok(())
}