cairo_lang_runner/
clap.rs1use clap::ValueEnum;
2use serde::Serialize;
3
4use crate::profiling::ProfilerConfig;
5
6#[derive(ValueEnum, Clone, Default, Debug, Serialize, PartialEq, Eq, Hash)]
8#[serde(rename_all = "kebab-case")]
9pub enum RunProfilerConfigArg {
10 #[default]
11 None,
12 Cairo,
13 Scoped,
14 Sierra,
15}
16impl TryFrom<RunProfilerConfigArg> for ProfilerConfig {
17 type Error = ();
18 fn try_from(val: RunProfilerConfigArg) -> Result<Self, Self::Error> {
19 Ok(match val {
20 RunProfilerConfigArg::None => return Err(()),
21 RunProfilerConfigArg::Cairo => ProfilerConfig::Cairo,
22 RunProfilerConfigArg::Scoped => ProfilerConfig::Scoped,
23 RunProfilerConfigArg::Sierra => ProfilerConfig::Sierra,
24 })
25 }
26}