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,
}