ruwebframe 0.1.8

a simple webframe for rust actix-web, based on rudi and rbatis.
Documentation

use crate::rulog::ru_log;
use crate::ruweb::webrouter::with_container_mut;

use actix_web::{App, HttpServer};
use crate::rubase::BaseEntitySingle;

#[derive(Debug, Default)]
pub struct RuApp {}
impl BaseEntitySingle for RuApp {}

impl RuApp {
    pub fn new() -> Self {
        Self::default()
    }
   

    #[actix_web::main]
    pub async fn run(&self, port: u16) -> std::io::Result<()> {
        ru_log::info2("ruwebframe server port =>", port);
        HttpServer::new(move || {
            App::new().configure(|config| with_container_mut(|container| container.apply_routes(config)))
        })
        .bind(("0.0.0.0", port))?
        .workers(4)
        .run()
        .await
    }

    pub fn ctlc() {
        ru_log::info("服务已启动,按 Ctrl+C 退出");
        let (tx, rx) = std::sync::mpsc::channel();
        ctrlc::set_handler(move || {
            tx.send(()).unwrap();
        })
        .unwrap();
        // 阻塞主线程,等待信号
        rx.recv().unwrap();
        println!("正在关闭...");
    }
}