Skip to main content

tool_params

Macro tool_params 

Source
macro_rules! tool_params {
    (@ty req_str) => { ... };
    (@ty opt_str) => { ... };
    (@ty req_u32) => { ... };
    (@ty req_u64) => { ... };
    (@ty opt_u32) => { ... };
    (@ty opt_u64) => { ... };
    (@ty opt_bool) => { ... };
    (@ty req_bool) => { ... };
    (@ty req_str_array) => { ... };
    (@ty opt_str_array) => { ... };
    (@ty opt_i64_array) => { ... };
    (@json_ty req_str) => { ... };
    (@json_ty opt_str) => { ... };
    (@json_ty req_u32) => { ... };
    (@json_ty req_u64) => { ... };
    (@json_ty opt_u32) => { ... };
    (@json_ty opt_u64) => { ... };
    (@json_ty opt_bool) => { ... };
    (@json_ty req_bool) => { ... };
    (@required req_str) => { ... };
    (@required req_u32) => { ... };
    (@required req_u64) => { ... };
    (@required req_bool) => { ... };
    (@required req_str_array) => { ... };
    (@required opt_str) => { ... };
    (@required opt_u32) => { ... };
    (@required opt_u64) => { ... };
    (@required opt_bool) => { ... };
    (@required opt_str_array) => { ... };
    (@required opt_i64_array) => { ... };
    (@lenient req_str, $args:expr, $name:expr) => { ... };
    (@lenient opt_str, $args:expr, $name:expr) => { ... };
    (@lenient req_u32, $args:expr, $name:expr) => { ... };
    (@lenient req_u64, $args:expr, $name:expr) => { ... };
    (@lenient opt_u32, $args:expr, $name:expr) => { ... };
    (@lenient opt_u64, $args:expr, $name:expr) => { ... };
    (@lenient opt_bool, $args:expr, $name:expr) => { ... };
    (@lenient req_bool, $args:expr, $name:expr) => { ... };
    (@lenient req_str_array, $args:expr, $name:expr) => { ... };
    (@lenient opt_str_array, $args:expr, $name:expr) => { ... };
    (@lenient opt_i64_array, $args:expr, $name:expr) => { ... };
    (@req_accessor $vis:vis, req_u64, $field:ident) => { ... };
    (@req_accessor $vis:vis, req_bool, $field:ident) => { ... };
    (@req_accessor $vis:vis, $other:ident, $field:ident) => { ... };
    (@field_map req_str_array $(, min $min:literal)? $(, max $max:literal)?) => { ... };
    (@field_map opt_str_array $(, min $min:literal)? $(, max $max:literal)?) => { ... };
    (@field_map opt_i64_array $(, min $min:literal)? $(, max $max:literal)?) => { ... };
    (@field_map $kind:ident $(, min $min:literal)? $(, max $max:literal)?) => { ... };
    (@array_field_map $item_ty:literal $(, min $min:literal)? $(, max $max:literal)?) => { ... };
    (@schema $vis:vis, $( $field:ident : $kind:ident $(min $min:literal)? $(max $max:literal)? $(enum [$($ev:literal),+ $(,)?])? = $desc:literal ),+) => { ... };
    (
        $(#[$meta:meta])*
        $vis:vis struct $name:ident : serde {
            $( $field:ident : $kind:ident $(min $min:literal)? $(max $max:literal)? $(enum [$($ev:literal),+ $(,)?])? = $desc:literal ),+ $(,)?
        }
    ) => { ... };
    (
        $(#[$meta:meta])*
        $vis:vis struct $name:ident : lenient {
            $( $field:ident : $kind:ident $(min $min:literal)? $(max $max:literal)? $(enum [$($ev:literal),+ $(,)?])? = $desc:literal ),+ $(,)?
        }
    ) => { ... };
}
Expand description

Generate a typed tool-args struct + its wire input_schema from ONE table.

See the module docs for the grammar, the two parse modes (: serde / : lenient), and the byte-identity migration rule. Consumers need serde (with derive) and serde_json for : serde mode.