#![cfg_attr(coverage_nightly, coverage(off))]
use clap::ValueEnum;
use std::fmt;
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum ExecutionMode {
Cli,
Mcp,
}
impl fmt::Display for ExecutionMode {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
ExecutionMode::Cli => write!(f, "cli"),
ExecutionMode::Mcp => write!(f, "mcp"),
}
}
}
#[derive(Clone, Debug, ValueEnum, PartialEq)]
pub enum RefactorMode {
Batch,
Interactive,
}
impl fmt::Display for RefactorMode {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
RefactorMode::Batch => write!(f, "batch"),
RefactorMode::Interactive => write!(f, "interactive"),
}
}
}
#[derive(Clone, Debug, ValueEnum, PartialEq)]
pub enum DemoProtocol {
Cli,
Http,
Mcp,
#[cfg(feature = "tui")]
Tui,
All,
}
impl fmt::Display for DemoProtocol {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
DemoProtocol::Cli => write!(f, "cli"),
DemoProtocol::Http => write!(f, "http"),
DemoProtocol::Mcp => write!(f, "mcp"),
#[cfg(feature = "tui")]
DemoProtocol::Tui => write!(f, "tui"),
DemoProtocol::All => write!(f, "all"),
}
}
}
#[derive(Clone, Debug, ValueEnum, PartialEq)]
pub enum WasmOutputFormat {
Summary,
Detailed,
Json,
Sarif,
}
impl fmt::Display for WasmOutputFormat {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
WasmOutputFormat::Summary => write!(f, "summary"),
WasmOutputFormat::Detailed => write!(f, "detailed"),
WasmOutputFormat::Json => write!(f, "json"),
WasmOutputFormat::Sarif => write!(f, "sarif"),
}
}
}
#[derive(Clone, Debug, ValueEnum, PartialEq)]
pub enum DeepWasmLanguage {
Rust,
Ruchy,
}
impl fmt::Display for DeepWasmLanguage {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
DeepWasmLanguage::Rust => write!(f, "rust"),
DeepWasmLanguage::Ruchy => write!(f, "ruchy"),
}
}
}
#[derive(Clone, Debug, ValueEnum, PartialEq)]
pub enum DeepWasmFocus {
Full,
Source,
Compilation,
Runtime,
Interop,
}
impl fmt::Display for DeepWasmFocus {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
DeepWasmFocus::Full => write!(f, "full"),
DeepWasmFocus::Source => write!(f, "source"),
DeepWasmFocus::Compilation => write!(f, "compilation"),
DeepWasmFocus::Runtime => write!(f, "runtime"),
DeepWasmFocus::Interop => write!(f, "interop"),
}
}
}
#[derive(Clone, Debug, ValueEnum, PartialEq)]
pub enum DeepWasmOutputFormat {
Markdown,
Json,
Html,
}
impl fmt::Display for DeepWasmOutputFormat {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
DeepWasmOutputFormat::Markdown => write!(f, "markdown"),
DeepWasmOutputFormat::Json => write!(f, "json"),
DeepWasmOutputFormat::Html => write!(f, "html"),
}
}
}