ayun_runtime/config/
mod.rs1use ayun_config::support::default;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Serialize, Deserialize)]
5pub struct Runtime {
6 #[serde(default)]
7 pub kind: Kind,
8 #[serde(default)]
9 pub enable_io: bool,
10 #[serde(default = "default_nevents")]
11 pub nevents: usize,
12 #[serde(default)]
13 pub enable_time: bool,
14 #[serde(default)]
15 pub start_paused: bool,
16 #[serde(default)]
17 pub worker_threads: Option<usize>,
18 #[serde(default = "default_max_blocking_threads")]
19 pub max_blocking_threads: usize,
20 #[serde(default = "default_thread_name")]
21 pub thread_name: String,
22 #[serde(default)]
23 pub thread_stack_size: Option<usize>,
24 #[serde(default)]
25 pub keep_alive: Option<u64>,
26 #[serde(default)]
27 pub global_queue_interval: Option<u32>,
28 #[serde(default = "default_event_interval")]
29 pub event_interval: u32,
30 #[serde(default = "default_local_queue_capacity")]
31 pub local_queue_capacity: usize,
32 #[serde(default)]
33 pub unhandled_panic: UnhandledPanic,
34 #[serde(default)]
35 pub enable_metrics_poll_time_histogram: bool,
36 #[serde(default)]
37 pub disable_lifo_slot: bool,
38}
39
40impl Default for Runtime {
41 fn default() -> Self {
42 default::<Self>().expect("Failed to get default value")
43 }
44}
45
46#[derive(Debug, Default, Serialize, Deserialize)]
47pub enum Kind {
48 #[serde(rename = "current-thread")]
49 CurrentThread,
50 #[default]
51 #[serde(rename = "multi-thread")]
52 MultiThread,
53 #[serde(rename = "multi-thread-alt")]
54 MultiThreadAlt,
55}
56
57#[derive(Debug, Default, Serialize, Deserialize)]
58pub enum UnhandledPanic {
59 #[serde(rename = "ignore")]
60 #[default]
61 Ignore,
62 #[serde(rename = "shutdown-runtime")]
63 ShutdownRuntime,
64}
65
66fn default_nevents() -> usize {
67 1024
68}
69
70fn default_max_blocking_threads() -> usize {
71 512
72}
73
74fn default_thread_name() -> String {
75 "tokio-runtime-worker".to_string()
76}
77
78fn default_event_interval() -> u32 {
79 61
80}
81
82fn default_local_queue_capacity() -> usize {
83 256
84}