litecode 0.1.1

An ultra-lightweight Coding MCP server built with Rust
Documentation
use std::{net::SocketAddr, path::PathBuf};

use clap::{Parser, ValueEnum};

#[derive(Debug, Clone, Copy, PartialEq, Eq, ValueEnum)]
pub enum Transport {
    Stdio,
    Http,
}

#[derive(Debug, Parser)]
#[command(
    name = "litecode",
    about = "LiteCode MCP server",
    version,
    disable_help_subcommand = true
)]
pub struct Cli {
    #[arg(long, value_enum, default_value_t = Transport::Stdio)]
    pub transport: Transport,

    #[arg(long, default_value = "127.0.0.1:3000")]
    pub bind: SocketAddr,

    #[arg(long)]
    pub cwd: Option<PathBuf>,
}

#[cfg(test)]
mod tests {
    use clap::Parser;

    use super::{Cli, Transport};

    #[test]
    fn parses_http_mode_and_bind() {
        let cli = Cli::parse_from([
            "litecode",
            "--transport",
            "http",
            "--bind",
            "127.0.0.1:7777",
        ]);

        assert_eq!(cli.transport, Transport::Http);
        assert_eq!(cli.bind.to_string(), "127.0.0.1:7777");
    }
}