use deno_core::ModuleSpecifier;
#[derive(Debug, Default, Clone, Copy)]
pub enum WorkerLogLevel {
Error = 1,
Warn = 2,
#[default]
Info = 3,
Debug = 4,
}
impl From<log::Level> for WorkerLogLevel {
fn from(value: log::Level) -> Self {
match value {
log::Level::Error => WorkerLogLevel::Error,
log::Level::Warn => WorkerLogLevel::Warn,
log::Level::Info => WorkerLogLevel::Info,
log::Level::Debug => WorkerLogLevel::Debug,
log::Level::Trace => WorkerLogLevel::Debug,
}
}
}
#[derive(Clone)]
pub struct BootstrapOptions {
pub cpu_count: usize,
pub log_level: WorkerLogLevel,
pub locale: String,
pub location: Option<ModuleSpecifier>,
pub user_agent: String,
}
impl Default for BootstrapOptions {
fn default() -> Self {
let cpu_count = 1;
let runtime_version = env!("CARGO_PKG_VERSION");
let user_agent = format!("Swarmd/Local-{runtime_version}");
Self {
user_agent,
cpu_count,
log_level: Default::default(),
locale: "en".to_string(),
location: Default::default(),
}
}
}