3 #[derive(Copy, Clone, Debug)]
10 impl Default for CodegenMode {
11 fn default() -> Self {
16 impl FromStr for CodegenMode {
19 fn from_str(s: &str) -> Result<Self, Self::Err> {
21 "aot" => Ok(CodegenMode::Aot),
22 "jit" => Ok(CodegenMode::Jit),
23 "jit-lazy" => Ok(CodegenMode::JitLazy),
24 _ => Err(format!("Unknown codegen mode `{}`", s)),
29 #[derive(Copy, Clone, Debug, Default)]
30 pub struct BackendConfig {
31 pub codegen_mode: CodegenMode,
35 pub fn from_opts(opts: &[String]) -> Result<Self, String> {
36 let mut config = BackendConfig::default();
38 if let Some((name, value)) = opt.split_once('=') {
40 "mode" => config.codegen_mode = value.parse()?,
41 _ => return Err(format!("Unknown option `{}`", name)),
44 return Err(format!("Invalid option `{}`", opt));