use std::sync::Arc;
use ctor::ctor;
use rbatis::rbdc::Uuid;
use rudi::{Singleton, Transient};
use crate::rubase::rutils::fileutils;
use crate::rudi::diconst;
use crate::rudi::ditemplate::struct_init::Database;
use crate::rudi::dicontainer::direg;
use crate::rulog;
use heck::ToSnakeCase;
#[derive(Clone)]
#[Transient]
pub struct ParseTemplate {
Template: String,
SingleName: String,
}
impl ParseTemplate {
pub fn new() -> ParseTemplate {
ParseTemplate {
Template: String::from(""),
SingleName: String::from(""),
}
}
pub fn parse_template_file( ) -> String {
let content = fileutils::read_file(diconst::INIT_TEMPLATE_PATH).unwrap();
rulog::info(content.as_str());
return content;
}
pub fn parse_template( template: &str) -> String {
let content = fileutils::read_file(diconst::INIT_TEMPLATE_PATH).unwrap();
rulog::info(content.as_str());
return content;
}
pub fn build_single_name( &self,single_name: &str) -> String {
let uuid = Uuid::new();
String::from(single_name) + ":" + &uuid.to_string()
}
pub fn build_single_file_name(&self, single_name: &str) -> String {
String::from(single_name.to_snake_case()) + "_init.rs"
}
pub fn FindFileExist() -> bool {
true
}
pub fn CreateFileInit() {
}
}
const SingleBeanName: &str = "*dbentity.ParseTemplate-c4c86833-374b-4acb-8769-b5fa294cb7b3";
pub fn find_bean_pt() -> Option<Arc<ParseTemplate>> {
direg::get_bean::<ParseTemplate>(SingleBeanName)
}
#[ctor(unsafe)]
pub fn register_bean_pt() {
direg::register (SingleBeanName, ParseTemplate::new);
}