runtime flavors

This commit is contained in:
Toshit Chawda 2024-09-27 16:59:46 -07:00
parent 4c69b55a0a
commit acb863a661
No known key found for this signature in database
GPG key ID: 91480ED99E2B3D9D
2 changed files with 81 additions and 52 deletions

View file

@ -59,6 +59,18 @@ pub enum SocketTransport {
LengthDelimitedLe,
}
#[derive(Serialize, Deserialize, Default, Debug)]
#[serde(rename_all = "lowercase")]
pub enum RuntimeFlavor {
/// Single-threaded tokio runtime.
SingleThread,
/// Multi-threaded tokio runtime.
#[default]
MultiThread,
/// Multi-threaded tokio runtime with an alternate work in progress scheduler.
MultiThreadAlt,
}
pub type BindAddr = (SocketType, String);
#[derive(Serialize, Deserialize, Debug)]
@ -106,6 +118,8 @@ pub struct ServerConfig {
/// Server log level.
pub log_level: LevelFilter,
/// Runtime type.
pub runtime: RuntimeFlavor,
}
#[derive(Serialize, Deserialize, PartialEq, Eq)]
@ -324,6 +338,7 @@ impl Default for ServerConfig {
max_message_size: 64 * 1024,
log_level: LevelFilter::Info,
runtime: RuntimeFlavor::default(),
}
}
}