Skip to main content

hyperlane_plugin/env/
struct.rs

1use super::*;
2
3#[derive(Clone, Data, Debug, Default)]
4pub struct DockerComposeConfig {
5    #[get(pub(crate))]
6    pub(super) mysql_database: Option<String>,
7    #[get(pub(crate))]
8    pub(super) mysql_password: Option<String>,
9    #[get(type(copy), pub(crate))]
10    pub(super) mysql_port: Option<usize>,
11    #[get(pub(crate))]
12    pub(super) mysql_username: Option<String>,
13    #[get(pub(crate))]
14    pub(super) postgresql_database: Option<String>,
15    #[get(pub(crate))]
16    pub(super) postgresql_password: Option<String>,
17    #[get(type(copy), pub(crate))]
18    pub(super) postgresql_port: Option<usize>,
19    #[get(pub(crate))]
20    pub(super) postgresql_username: Option<String>,
21    #[get(pub(crate))]
22    pub(super) redis_password: Option<String>,
23    #[get(type(copy), pub(crate))]
24    pub(super) redis_port: Option<usize>,
25    #[get(pub(crate))]
26    pub(super) redis_username: Option<String>,
27}
28
29#[derive(Clone, Data, Debug, Default)]
30pub struct EnvConfig {
31    #[get(pub)]
32    pub(super) gpt_api_url: String,
33    #[get(pub)]
34    pub(super) gpt_model: String,
35    #[get(pub(crate))]
36    pub(super) mysql_instances: Vec<MySqlInstanceConfig>,
37    #[get(pub(crate))]
38    pub(super) postgresql_instances: Vec<PostgreSqlInstanceConfig>,
39    #[get(pub(crate))]
40    pub(super) redis_instances: Vec<RedisInstanceConfig>,
41}
42
43#[derive(Clone, Data, Debug, Default)]
44pub struct MySqlInstanceConfig {
45    #[get(pub(crate))]
46    pub(super) database: String,
47    #[get(pub(crate))]
48    pub(super) host: String,
49    #[get(pub(crate))]
50    pub(super) name: String,
51    #[get(pub(crate))]
52    pub(super) password: String,
53    #[get(type(copy), pub(crate))]
54    pub(super) port: usize,
55    #[get(pub(crate))]
56    pub(super) username: String,
57}
58
59#[derive(Clone, Data, Debug, Default)]
60pub struct PostgreSqlInstanceConfig {
61    #[get(pub(crate))]
62    pub(super) database: String,
63    #[get(pub(crate))]
64    pub(super) host: String,
65    #[get(pub(crate))]
66    pub(super) name: String,
67    #[get(pub(crate))]
68    pub(super) password: String,
69    #[get(type(copy), pub(crate))]
70    pub(super) port: usize,
71    #[get(pub(crate))]
72    pub(super) username: String,
73}
74
75#[derive(Clone, Data, Debug, Default)]
76pub struct RedisInstanceConfig {
77    #[get(pub(crate))]
78    pub(super) host: String,
79    #[get(pub(crate))]
80    pub(super) name: String,
81    #[get(pub(crate))]
82    pub(super) password: String,
83    #[get(type(copy), pub(crate))]
84    pub(super) port: usize,
85    #[get(pub(crate))]
86    pub(super) username: String,
87}