Loading...
Searching...
No Matches
BinaryNinja::MCP::GroupParam< ParseFn, LookupFn, Params > Class Template Reference

A Group that has a parse function, a lookup function or both, created by Group::Parse or Group::Lookup. More...

Detailed Description

template<class ParseFn, class LookupFn, class... Params>
class BinaryNinja::MCP::GroupParam< ParseFn, LookupFn, Params >

A Group that has a parse function, a lookup function or both, created by Group::Parse or Group::Lookup.

Public Types

using Parsed = typename std::invoke_result_t<const ParseFn&, ToolCall&, typename Params::Value&...>::value_type
using Value = typename std::invoke_result_t<const LookupFn&, ToolCall&, Parsed&>::value_type

Public Member Functions

 GroupParam (std::tuple< Params... > params, ParseFn parse, LookupFn lookup)
template<detail::LookupFunction< Parsed > NextLookupFn>
requires std::same_as<LookupFn, detail::KeepParsed>
GroupParam< ParseFn, NextLookupFn, Params... > Lookup (NextLookupFn lookup) &&
 Sets the lookup function, which receives the parsed value as lookup(ToolCall&, Parsed&).
void Declare (detail::InputSchemaBuilder &schema) const
ArgumentResult< Parsed > ParseArguments (detail::ArgumentReader &reader) const
bn::base::expected< Value, ToolResult > Finish (ToolCall &call, Parsed &parsed) const

Member Typedef Documentation

◆ Parsed

template<class ParseFn, class LookupFn, class... Params>
using BinaryNinja::MCP::GroupParam< ParseFn, LookupFn, Params >::Parsed = typename std::invoke_result_t<const ParseFn&, ToolCall&, typename Params::Value&...>::value_type

◆ Value

template<class ParseFn, class LookupFn, class... Params>
using BinaryNinja::MCP::GroupParam< ParseFn, LookupFn, Params >::Value = typename std::invoke_result_t<const LookupFn&, ToolCall&, Parsed&>::value_type

Constructor & Destructor Documentation

◆ GroupParam()

template<class ParseFn, class LookupFn, class... Params>
BinaryNinja::MCP::GroupParam< ParseFn, LookupFn, Params >::GroupParam ( std::tuple< Params... > params,
ParseFn parse,
LookupFn lookup )
inline

Member Function Documentation

◆ Lookup()

template<class ParseFn, class LookupFn, class... Params>
template<detail::LookupFunction< Parsed > NextLookupFn>
requires std::same_as<LookupFn, detail::KeepParsed>
GroupParam< ParseFn, NextLookupFn, Params... > BinaryNinja::MCP::GroupParam< ParseFn, LookupFn, Params >::Lookup ( NextLookupFn lookup) &&
inline

Sets the lookup function, which receives the parsed value as lookup(ToolCall&, Parsed&).

Otherwise it is the same as Group::Lookup.

◆ Declare()

template<class ParseFn, class LookupFn, class... Params>
void BinaryNinja::MCP::GroupParam< ParseFn, LookupFn, Params >::Declare ( detail::InputSchemaBuilder & schema) const
inline

◆ ParseArguments()

template<class ParseFn, class LookupFn, class... Params>
ArgumentResult< Parsed > BinaryNinja::MCP::GroupParam< ParseFn, LookupFn, Params >::ParseArguments ( detail::ArgumentReader & reader) const
inline

◆ Finish()

template<class ParseFn, class LookupFn, class... Params>
bn::base::expected< Value, ToolResult > BinaryNinja::MCP::GroupParam< ParseFn, LookupFn, Params >::Finish ( ToolCall & call,
Parsed & parsed ) const
inline