1pub mod check;
4pub mod codegen;
7pub mod discovery;
8pub mod doc;
9pub mod fingerprint;
10pub mod generate;
11pub mod init;
12pub mod initialize;
13pub mod install;
14pub mod run;
15
16use crate::error::Result;
17use async_trait::async_trait;
18use clap::ValueEnum;
19
20#[async_trait]
22pub trait Command {
23 async fn execute(&self) -> Result<()>;
24}
25
26#[derive(Debug, Clone, Copy, PartialEq, Eq, ValueEnum, serde::Serialize, serde::Deserialize)]
28pub enum SupportedLanguage {
29 Rust,
30 Python,
31 Swift,
32 Kotlin,
33}
34
35pub use discovery::DiscoveryCommand;
37pub use generate::GenCommand;
38pub use init::InitCommand;
39pub use install::InstallCommand;