use std::time::Duration;
#[derive(Clone)]
pub struct ThreadPoolConfig {
core_threads: usize,
max_threads: usize,
queue_size: usize,
keep_alive: Option<Duration>,
}
impl ThreadPoolConfig {
pub fn new(core_threads: usize, max_threads: usize, queue_size: usize) -> Self {
ThreadPoolConfig {
core_threads,
max_threads,
queue_size,
keep_alive: None,
}
}
pub fn get_core_threads(&self) -> usize {
self.core_threads
}
pub fn get_max_threads(&self) -> usize {
self.max_threads
}
pub fn get_keep_alive(&self) -> Option<Duration> {
self.keep_alive
}
pub fn get_queue_size(&self) -> usize {
self.queue_size
}
pub fn set_core_threads(&mut self, core_threads: usize) {
self.core_threads = core_threads;
}
pub fn set_max_threads(&mut self, max_threads: usize) {
self.max_threads = max_threads;
}
pub fn set_queue_size(&mut self, queue_size: usize) {
self.queue_size = queue_size;
}
pub fn set_keep_alive(&mut self, keep_alive: Option<Duration>) {
self.keep_alive = keep_alive;
}
}
impl Default for ThreadPoolConfig {
fn default() -> Self {
ThreadPoolConfig {
core_threads: 4,
max_threads: 8,
queue_size: 100,
keep_alive: None,
}
}
}