pub struct Entry {
pub name: String,
pub summary: String,
pub description: String,
pub input_schema: Schema,
pub output_schema: Option<Schema>,
pub root: FieldMeta,
pub cli: CliHints,
pub http: HTTPHints,
pub mcp: MCPHints,
pub invoke: Box<dyn Fn(&Ctx, &JsonMap) -> Result<Value> + Send + Sync>,
}Fields§
§name: String§summary: String§description: String§input_schema: Schema入参 struct 的 JSON Schema;MCP 前端与 OpenAPI 文档直接消费。
output_schema: Option<Schema>handler 结果类型的 JSON Schema(MCP tool.outputSchema / OpenAPI 响应 schema)。结果类型无法 schematize 时为 None。
root: FieldMeta入参 struct 树(tags、默认值、CLI/HTTP 绑定)——生成 flag、路由 或绑定器的前端读这里。
cli: CliHints§http: HTTPHints§mcp: MCPHints§invoke: Box<dyn Fn(&Ctx, &JsonMap) -> Result<Value> + Send + Sync>解码入参——任何前端归约出的 map 形状——补默认、校验并跑 handler。 解码与校验失败一律以 Kind::InvalidInput 分类返回。
Implementations§
Source§impl Entry
impl Entry
Sourcepub fn cli_defaults(&self) -> Map<String, Value>
pub fn cli_defaults(&self) -> Map<String, Value>
CLI 专属默认值:每个可绑定字段一条,按 JSON 名键控。CLI 前端在 Invoke 之前把它们注入入参 map;全局 tag 默认由 Invoke 自己补, 所以优先级是 CLI 覆盖 > 全局 tag > 零值。
Sourcepub fn http_defaults(&self) -> Map<String, Value>
pub fn http_defaults(&self) -> Map<String, Value>
HTTP 专属默认值。
Sourcepub fn mcp_defaults(&self) -> Map<String, Value>
pub fn mcp_defaults(&self) -> Map<String, Value>
MCP 专属默认值。MCP 的覆盖同时替换 inputSchema 里的 default。
Trait Implementations§
Auto Trait Implementations§
impl !RefUnwindSafe for Entry
impl !UnwindSafe for Entry
impl Freeze for Entry
impl Send for Entry
impl Sync for Entry
impl Unpin for Entry
impl UnsafeUnpin for Entry
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> 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