pub struct Flag { /* private fields */ }Expand description
A flag definition for a crate::Command or app-level registration.
Flags can carry an optional short alias (e.g. "h" for "help") which is
resolved to the canonical name before the handler is called. Use Flag::global
to create a flag that is available across all commands.
Implementations§
Source§impl Flag
impl Flag
Sourcepub fn new(name: impl Into<String>) -> Self
pub fn new(name: impl Into<String>) -> Self
Creates a new command-scoped flag with the given canonical name.
The name should be given without the -- prefix, e.g. "silent" for --silent.
Examples found in repository?
147fn main() {
148 App::new("taskr")
149 .name("Taskr")
150 .description("A toy task manager. Demonstrates all vecli features.")
151 .version("0.1.0")
152 .main(entry)
153 .flag(
154 Flag::global("verbose")
155 .alias("v")
156 .description("Enable verbose output."),
157 )
158 .print_help_on_fail(true)
159 .add_command(
160 Command::new("add", add)
161 .description("Add a new task.")
162 .usage("<task> [--priority <level>]")
163 .flag(
164 Flag::new("priority")
165 .alias("p")
166 .description("Task priority: low, medium, or high."),
167 )
168 .strict_flags(true),
169 )
170 .add_command(
171 Command::new("list", list)
172 .description("List pending tasks.")
173 .flag(
174 Flag::new("all")
175 .alias("a")
176 .description("Include completed tasks."),
177 )
178 .subcommand(
179 Command::new("urgent", list_urgent)
180 .description("List only high-priority tasks."),
181 ),
182 )
183 .add_command(
184 Command::new("done", done)
185 .description("Mark a task as done.")
186 .usage("<task>"),
187 )
188 .add_command(
189 Command::parent("config")
190 .description("Manage taskr configuration.")
191 .print_help_if_no_args(true)
192 .subcommand(
193 Command::new("set", config_set)
194 .description("Set a config value.")
195 .usage("<key> <value>"),
196 )
197 .subcommand(Command::new("show", config_show).description("Show current config.")),
198 )
199 .add_command(Command::new("clear", clear).description("Clear all tasks."))
200 .run();
201}Sourcepub fn global(name: impl Into<String>) -> Self
pub fn global(name: impl Into<String>) -> Self
Creates a new global flag available to all commands in the app.
Global flags are resolved and merged into crate::CommandContext::flags
for every command, so handlers can read them without any extra setup.
Register global flags on the app via crate::App::flag.
§Example
use vecli::Flag;
let debug = Flag::global("debug").alias("g").description("Enable debug output.");Examples found in repository?
147fn main() {
148 App::new("taskr")
149 .name("Taskr")
150 .description("A toy task manager. Demonstrates all vecli features.")
151 .version("0.1.0")
152 .main(entry)
153 .flag(
154 Flag::global("verbose")
155 .alias("v")
156 .description("Enable verbose output."),
157 )
158 .print_help_on_fail(true)
159 .add_command(
160 Command::new("add", add)
161 .description("Add a new task.")
162 .usage("<task> [--priority <level>]")
163 .flag(
164 Flag::new("priority")
165 .alias("p")
166 .description("Task priority: low, medium, or high."),
167 )
168 .strict_flags(true),
169 )
170 .add_command(
171 Command::new("list", list)
172 .description("List pending tasks.")
173 .flag(
174 Flag::new("all")
175 .alias("a")
176 .description("Include completed tasks."),
177 )
178 .subcommand(
179 Command::new("urgent", list_urgent)
180 .description("List only high-priority tasks."),
181 ),
182 )
183 .add_command(
184 Command::new("done", done)
185 .description("Mark a task as done.")
186 .usage("<task>"),
187 )
188 .add_command(
189 Command::parent("config")
190 .description("Manage taskr configuration.")
191 .print_help_if_no_args(true)
192 .subcommand(
193 Command::new("set", config_set)
194 .description("Set a config value.")
195 .usage("<key> <value>"),
196 )
197 .subcommand(Command::new("show", config_show).description("Show current config.")),
198 )
199 .add_command(Command::new("clear", clear).description("Clear all tasks."))
200 .run();
201}Sourcepub fn alias(self, alias: impl Into<String>) -> Self
pub fn alias(self, alias: impl Into<String>) -> Self
Sets the short alias for this flag (e.g. "h" to match -h).
Aliases are always treated as boolean regardless of the long flag’s value type.
Examples found in repository?
147fn main() {
148 App::new("taskr")
149 .name("Taskr")
150 .description("A toy task manager. Demonstrates all vecli features.")
151 .version("0.1.0")
152 .main(entry)
153 .flag(
154 Flag::global("verbose")
155 .alias("v")
156 .description("Enable verbose output."),
157 )
158 .print_help_on_fail(true)
159 .add_command(
160 Command::new("add", add)
161 .description("Add a new task.")
162 .usage("<task> [--priority <level>]")
163 .flag(
164 Flag::new("priority")
165 .alias("p")
166 .description("Task priority: low, medium, or high."),
167 )
168 .strict_flags(true),
169 )
170 .add_command(
171 Command::new("list", list)
172 .description("List pending tasks.")
173 .flag(
174 Flag::new("all")
175 .alias("a")
176 .description("Include completed tasks."),
177 )
178 .subcommand(
179 Command::new("urgent", list_urgent)
180 .description("List only high-priority tasks."),
181 ),
182 )
183 .add_command(
184 Command::new("done", done)
185 .description("Mark a task as done.")
186 .usage("<task>"),
187 )
188 .add_command(
189 Command::parent("config")
190 .description("Manage taskr configuration.")
191 .print_help_if_no_args(true)
192 .subcommand(
193 Command::new("set", config_set)
194 .description("Set a config value.")
195 .usage("<key> <value>"),
196 )
197 .subcommand(Command::new("show", config_show).description("Show current config.")),
198 )
199 .add_command(Command::new("clear", clear).description("Clear all tasks."))
200 .run();
201}Sourcepub fn description(self, desc: impl Into<String>) -> Self
pub fn description(self, desc: impl Into<String>) -> Self
Sets the description shown in help output.
Examples found in repository?
147fn main() {
148 App::new("taskr")
149 .name("Taskr")
150 .description("A toy task manager. Demonstrates all vecli features.")
151 .version("0.1.0")
152 .main(entry)
153 .flag(
154 Flag::global("verbose")
155 .alias("v")
156 .description("Enable verbose output."),
157 )
158 .print_help_on_fail(true)
159 .add_command(
160 Command::new("add", add)
161 .description("Add a new task.")
162 .usage("<task> [--priority <level>]")
163 .flag(
164 Flag::new("priority")
165 .alias("p")
166 .description("Task priority: low, medium, or high."),
167 )
168 .strict_flags(true),
169 )
170 .add_command(
171 Command::new("list", list)
172 .description("List pending tasks.")
173 .flag(
174 Flag::new("all")
175 .alias("a")
176 .description("Include completed tasks."),
177 )
178 .subcommand(
179 Command::new("urgent", list_urgent)
180 .description("List only high-priority tasks."),
181 ),
182 )
183 .add_command(
184 Command::new("done", done)
185 .description("Mark a task as done.")
186 .usage("<task>"),
187 )
188 .add_command(
189 Command::parent("config")
190 .description("Manage taskr configuration.")
191 .print_help_if_no_args(true)
192 .subcommand(
193 Command::new("set", config_set)
194 .description("Set a config value.")
195 .usage("<key> <value>"),
196 )
197 .subcommand(Command::new("show", config_show).description("Show current config.")),
198 )
199 .add_command(Command::new("clear", clear).description("Clear all tasks."))
200 .run();
201}