use crate::rubase::{BaseEntity, ParseEnvVar};
use crate::rubase::get_self::GetSelf;
use crate::rubase::rudto::cfgdto::etcd_dto::EtcdDto;
use crate::rubase::rudto::cfgdto::web_dto::WebDto;
use crate::rubase::rudto::cfgdto::{DataSource, etcd_dto, gorm, redis_dto, soft_dto, web_dto, rpc_dto};
use crate::rubase::rudto::{Gorm, RedisDto};
use serde::{Deserialize, Serialize};
use crate::rubase::rudto::cfgdto::rpc_dto::RpcDto;
use crate::rubase::rudto::cfgdto::soft_dto::SoftDto;
#[derive(Debug, Clone, Default, Deserialize, Serialize)]
pub struct CfgDto {
pub software: SoftDto,
pub web: WebDto,
pub gorm: Gorm,
pub datasource: DataSource,
pub redis: RedisDto,
pub etcd: EtcdDto,
pub rpc: RpcDto,
}
impl BaseEntity for CfgDto {}
impl GetSelf for CfgDto {}
impl ParseEnvVar for CfgDto {}
impl CfgDto {
pub fn new() -> CfgDto {
Self {
..Default::default()
}
}
pub fn parse_env_var(&mut self) {
self.software.parse_env_var();
self.web.parse_env_var();
self.gorm.parse_env_var();
self.datasource.parse_env_var();
self.redis.parse_env_var();
self.etcd.parse_env_var();
self.rpc.parse_env_var();
}
pub fn find_env(&self) -> String {
self.software.env.clone()
}
}
impl ParseEnvVar for Gorm {}
impl ParseEnvVar for RedisDto {}
impl ParseEnvVar for EtcdDto {}
impl ParseEnvVar for SoftDto {}
impl ParseEnvVar for DataSource {}