ruwebframe 0.1.1

A brief description of your crate.
Documentation
//use crate::rubase::ruentity::rustentity::RustEntity;
use crate::rubase::rutils::jsonutils;
use crate::rubase::{ruentity, BaseEntity};
use crate::rudi::dicontainer::direg;
use crate::{impl_base_entity, rulog};
use ctor::ctor;
use displaydoc::Display;
use serde::{Deserialize, Serialize};
use std::fmt;
use std::fmt::Debug;
use std::sync::Arc;

#[derive(Serialize,Default, Deserialize, Debug, Clone)]
pub struct Person {
   
    pub id: i64,
    pub name: String,
    pub age: u16,
    pub active: bool,
}
// 普通实体
//impl_base_entity!(Person); 
 impl ruentity::BaseEntity for Person {
     
}
fn convert_to_fmt_result<T>(result: Result<T, serde_json::Error>) -> fmt::Result {
    result.map_err(|e| {
        // serde_json::Error -> fmt::Error
        // 通常通过打印错误信息或丢弃错误
        eprintln!("JSON 错误: {}", e);
        fmt::Error // fmt::Error 没有携带信息,只能表示"发生错误"
    })?;
    Ok(())
}
impl fmt::Display for Person {
    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
        let result = jsonutils::struct2json(&self);
        //  convert_to_fmt_result(r)
        match result {
            Ok(data) => {
                // 处理数据
                println!("成功: {:?}", data);
                crate::rulog::rulog::info(data.as_str());
                Ok(())
            }
            Err(e) => {
                eprintln!("JSON 解析失败: {}", e);
                Err(fmt::Error) // 转换为 fmt::Error
            }
        }
    }
}

impl Person {
    pub fn log(&self) -> &Person {
        let json_string =self.to_json();// serde_json::to_string(self).unwrap();
        rulog::rulog::info(json_string.as_str());
        self
    }

    pub fn new() -> Person {
        Self::new_as(0, String::new(), 30, true)
    }
    pub fn new_as(id: i64, name: String, age: u16, active: bool) -> Person {
        Person {
            //rustEntity: RustEntity {},
            id,
            name,
            age,
            active,
        }
    }
}
const Single_BEAN_NAME: &str = "Single_BEAN_NAME.Person.bean_XXXX_db";

pub fn find_bean_person() -> Option<Arc<Person>> {
    direg::get_bean::<Person>(Single_BEAN_NAME)
}
#[ctor(unsafe)]
pub fn register_bean_person() {
    direg::register(Single_BEAN_NAME, Person::new);
}