use std::path::PathBuf;
use clap::Parser;
#[derive(Parser, Debug)]
#[clap()]
pub struct Opts {
pub args: Vec<String>,
#[clap(short = 'c', long = "config")]
pub config: Option<PathBuf>,
#[clap(short = 'p', long = "pwd")]
pub pwd: Option<PathBuf>,
}
In Rust, the difference between single quotes ('
) and double quotes ("
) is significant and pertains to what kind of data you're representing:
-
Single Quotes ('
): Used to denote a single character, or char
type in Rust. For example, 'a'
represents a single character. This is why when specifying the short
option in clap, you use a single character within single quotes, like -c
represented as 'c'
.
-
Double Quotes ("
): Used to denote a string literal, or String
type in Rust. String literals are sequences of characters. For example, "config"
represents a string consisting of the characters c
, o
, n
, f
, i
, g
. In clap, when specifying the long
name of an argument, you use a string because these names are typically more than one character long.
This distinction is common in many programming languages, where single quotes represent a single character, and double quotes represent a string or sequence of characters. It's a part of the syntax that helps the compiler understand exactly what kind of data you're working with: a single char
or a String
.