1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
use clap::Parser;
use std::{num::NonZeroUsize, path::PathBuf};
/// A Brainfuck interpreter written in Rust.
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
pub(crate) struct Args {
/// The path to Brainfuck source file.
pub(crate) program: PathBuf,
/// Number of cells in Brainfuck virtual machine memory, default to 30,000.
#[arg(short, long, default_value = "30000")]
pub(crate) cells: NonZeroUsize,
/// Allow virtual machine memory to auto extend or not.
#[arg(short, long)]
pub(crate) extensible: bool,
}