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