eld_llm 0.0.1

An LLM built from scratch in Rust
// cli parsing with clap 

use clap::{Parser, Subcommand}; 

#[derive(Parser)]
#[clap(name = "eld", version = "0.1", author = "Kjeti Indrehus", about = "A Rust library for tokenization and benchmarking")]
pub struct Cli {
    #[clap(subcommand)]
    pub command: Commands,
} 


// types of benchmarks we can run, e.g. tokenizer, embedding, etc. 
// For now we only have tokenizer benchmark, but we can add more later
#[derive(clap::ValueEnum, Clone)]
pub enum BenchType {
    Tokenizer,
}


// allowed commands 
#[derive(Subcommand)]
pub enum Commands {
    Bench {
        #[clap(long)]
        bench_type: BenchType,

        #[clap(long)]
        tokenizer: String, // e.g. "naive"


        #[clap(long)]
        data: String, // e.g. "data/shakespeare.txt"
    },
}