hyperlane_plugin/env/
struct.rs1use super::*;
2
3#[derive(Clone, Copy, Data, Debug, Default)]
4pub struct EnvPlugin;
5
6#[derive(Clone, Data, Debug, Default)]
7pub struct DockerComposeConfig {
8 pub(super) mysql_database: Option<String>,
9 pub(super) mysql_password: Option<String>,
10 #[get(type(copy))]
11 pub(super) mysql_port: Option<usize>,
12 pub(super) mysql_username: Option<String>,
13 pub(super) postgresql_database: Option<String>,
14 pub(super) postgresql_password: Option<String>,
15 #[get(type(copy))]
16 pub(super) postgresql_port: Option<usize>,
17 pub(super) postgresql_username: Option<String>,
18 pub(super) redis_password: Option<String>,
19 #[get(type(copy))]
20 pub(super) redis_port: Option<usize>,
21 pub(super) redis_username: Option<String>,
22}
23
24#[derive(Clone, Data, Debug, Default)]
25pub struct EnvConfig {
26 #[get(type(copy))]
27 pub(super) db_connection_timeout_millis: u64,
28 #[get(type(copy))]
29 pub(super) db_retry_interval_millis: u64,
30 #[get(pub)]
31 pub(super) gpt_api_url: String,
32 #[get(pub)]
33 pub(super) gpt_model: String,
34 pub(super) mysql_instances: Vec<MySqlInstanceConfig>,
35 pub(super) postgresql_instances: Vec<PostgreSqlInstanceConfig>,
36 pub(super) redis_instances: Vec<RedisInstanceConfig>,
37 #[get(type(copy))]
38 pub(super) server_port: u16,
39 #[get(pub)]
40 pub(super) server_host: String,
41 #[get(type(copy))]
42 pub(super) server_buffer: usize,
43 #[get(type(copy))]
44 pub(super) server_log_size: usize,
45 #[get(pub)]
46 pub(super) server_log_dir: String,
47 #[get(type(copy))]
48 pub(super) server_inner_print: bool,
49 #[get(type(copy))]
50 pub(super) server_inner_log: bool,
51 #[get(type(copy))]
52 pub(super) server_nodelay: Option<bool>,
53 #[get(type(copy))]
54 pub(super) server_tti: Option<u32>,
55 #[get(pub)]
56 pub(super) server_pid_file_path: String,
57 #[get(type(copy))]
58 pub(super) server_request_http_read_timeout_ms: u64,
59 #[get(type(copy))]
60 pub(super) server_request_max_body_size: usize,
61}
62
63#[derive(Clone, Debug, Default, serde::Deserialize, Data)]
64pub struct MySqlInstanceConfig {
65 #[serde(rename = "name")]
66 pub(super) name: String,
67 #[serde(rename = "host")]
68 pub(super) host: String,
69 #[get(type(copy))]
70 #[serde(default, rename = "port")]
71 pub(super) port: usize,
72 #[serde(rename = "database")]
73 pub(super) database: String,
74 #[serde(rename = "username")]
75 pub(super) username: String,
76 #[serde(rename = "password")]
77 pub(super) password: String,
78}
79
80#[derive(Clone, Debug, Default, serde::Deserialize, Data)]
81pub struct PostgreSqlInstanceConfig {
82 #[serde(rename = "name")]
83 pub(super) name: String,
84 #[serde(rename = "host")]
85 pub(super) host: String,
86 #[get(type(copy))]
87 #[serde(default, rename = "port")]
88 pub(super) port: usize,
89 #[serde(rename = "database")]
90 pub(super) database: String,
91 #[serde(rename = "username")]
92 pub(super) username: String,
93 #[serde(rename = "password")]
94 pub(super) password: String,
95}
96
97#[derive(Clone, Debug, Default, serde::Deserialize, Data)]
98pub struct RedisInstanceConfig {
99 #[serde(rename = "name")]
100 pub(super) name: String,
101 #[serde(rename = "host")]
102 pub(super) host: String,
103 #[get(type(copy))]
104 #[serde(default, rename = "port")]
105 pub(super) port: usize,
106 #[serde(default, rename = "username")]
107 pub(super) username: String,
108 #[serde(rename = "password")]
109 pub(super) password: String,
110}