hyperlane_plugin/env/
struct.rs1use 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}