pub struct CliHints {
pub usage: String,
pub aliases: Vec<String>,
pub format: String,
pub hidden: bool,
pub default: bool,
pub skip: bool,
pub daemon: bool,
pub before: String,
pub after: String,
pub fields: HashMap<String, CliFieldHint>,
}Expand description
CliHints 是 CLI 前端的命令级配置。字段级绑定可以放在入参 struct 的 cli 属性上,也可以放在 Fields(按字段 JSON 名或 Rust 名索引)。Fields 条目合并覆盖属性绑定——零值 hint 字段保留属性值,因此可以只在属性里 设短名、只在构建器里改默认值。
Fields§
§usage: String单行调用式,如 “add
aliases: Vec<String>等价的子命令拼写。
format: String逐命令的默认输出格式(spec §10.7 第三层):“”=沿用全局; 取 auto|text|json|jsonl|markdown。低于命令行两层、高于 Config。
从帮助列表里隐藏。
default: bool使该命令成为其父节点的默认子命令:首段不是已注册命令段(且不是 flag)时,整串参数不消费地转发给它(udf image.tar ⇔ udf extract image.tar,当 extract 标记了 default)。
skip: bool从 CLI 通道整体移除该命令:不建子命令、别名不生效、不出现在 completion。与 hidden 的区别:hidden 只藏帮助、仍可执行。
daemon: bool声明「长驻命令」:handler 阻塞到 ctx 取消再返回。语义:隐含 HTTP/MCP 双排除(通道层面不消费);执行时不渲染返回值(handler 的 error 照常分类);ctx 取消即优雅关停、退出 0。
before: String-h 帮助的自定义文本块:分别插在帮助最前(description 之前)与
最后(Global Flags 之后)。原样输出(多行、缩进自控;结尾换行归一)。
空 = 不插入。仅叶子命令生效(中间节点没有 CliHints)。
after: String§fields: HashMap<String, CliFieldHint>Trait Implementations§
Auto Trait Implementations§
impl Freeze for CliHints
impl RefUnwindSafe for CliHints
impl Send for CliHints
impl Sync for CliHints
impl Unpin for CliHints
impl UnsafeUnpin for CliHints
impl UnwindSafe for CliHints
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more