#[macro_use]
extern crate lazy_static;
#[macro_use]
extern crate bitflags;
#[cfg(feature = "napi")]
#[macro_use]
extern crate napi_derive;
#[cfg(test)]
mod configuration;
pub mod error;
mod jobs;
mod utils;
#[cfg(feature = "serde")]
use serde::{Deserialize, Serialize};
pub use crate::jobs::*;
#[cfg(feature = "wasm")]
use tsify::Tsify;
#[cfg_attr(feature = "napi", napi)]
#[cfg_attr(feature = "wasm", derive(Tsify))]
#[cfg_attr(feature = "wasm", tsify(from_wasm_abi, into_wasm_abi))]
#[cfg_attr(feature = "clap", derive(clap::ValueEnum))]
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Debug, Default, Clone)]
#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
pub enum Extends {
None,
#[default]
Default,
Safe,
#[doc(hidden)]
#[cfg(feature = "napi")]
#[cfg_attr(feature = "clap", value(skip))]
Napi(),
}
impl Extends {
pub fn jobs(&self) -> Jobs {
match self {
Extends::None => Jobs::none(),
Extends::Default => Jobs::default(),
Extends::Safe => Jobs::safe(),
#[cfg(feature = "napi")]
Extends::Napi() => Jobs::none(),
}
}
pub fn extend(&self, jobs: &Jobs) -> Jobs {
let mut result = self.jobs();
result.extend(jobs);
result
}
}
#[cfg(test)]
#[ctor::ctor]
fn init_test() {
let _ = env_logger::builder().is_test(true).try_init();
}