Skip to main content

diffsol_c/
jit.rs

1use schemars::JsonSchema;
2use serde::{Deserialize, Serialize};
3
4#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize, JsonSchema)]
5#[serde(rename_all = "snake_case")]
6pub enum JitBackendType {
7    #[cfg(feature = "diffsl-cranelift")]
8    Cranelift,
9    #[cfg(feature = "diffsl-llvm")]
10    Llvm,
11}
12
13#[allow(dead_code)]
14pub fn default_enabled_jit_backend() -> Option<JitBackendType> {
15    #[cfg(all(feature = "diffsl-cranelift", not(feature = "diffsl-llvm")))]
16    let backend = Some(JitBackendType::Cranelift);
17    #[cfg(all(feature = "diffsl-llvm", not(feature = "diffsl-cranelift")))]
18    let backend = Some(JitBackendType::Llvm);
19    #[cfg(any(
20        all(feature = "diffsl-cranelift", feature = "diffsl-llvm"),
21        not(any(feature = "diffsl-cranelift", feature = "diffsl-llvm"))
22    ))]
23    let backend = None;
24
25    backend
26}