1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
use std::error::Error;
use std::result::Result;
use tikv_util::config::ReadableDuration;
#[derive(Clone, Serialize, Deserialize, PartialEq, Debug)]
#[serde(default)]
#[serde(rename_all = "kebab-case")]
pub struct Config {
pub num_threads: usize,
pub stream_channel_window: usize,
pub import_mode_timeout: ReadableDuration,
}
impl Default for Config {
fn default() -> Config {
Config {
num_threads: 8,
stream_channel_window: 128,
import_mode_timeout: ReadableDuration::minutes(10),
}
}
}
impl Config {
pub fn validate(&self) -> Result<(), Box<dyn Error>> {
if self.num_threads == 0 {
return Err("import.num_threads can not be 0".into());
}
if self.stream_channel_window == 0 {
return Err("import.stream_channel_window can not be 0".into());
}
Ok(())
}
}