Macro rpc_router::router_builder
source · macro_rules! router_builder { ($($fn_name:ident),+ $(,)?) => { ... }; (handlers: [$($handler:ident),* $(,)?], resources: [$($resource:expr),* $(,)?]) => { ... }; (handlers: [$($handler:ident),* $(,)?]) => { ... }; }
Expand description
A simple macro to create a new RouterBuider from a list of handlers and optionaly a list of resources
§Pattern 1 - List of function handlers
router_builder!(
create_project,
list_projects,
update_project,
delete_project
);
Is equivalent to:
RouterBuilder::default()
.append_dyn("create_project", create_project.into_box())
.append_dyn("list_projects", list_projects.into_box())
.append_dyn("update_project", update_project.into_box())
.append_dyn("delete_project", delete_project.into_box())
§Pattern 2 - List of function handlers, and resources
router_builder!(
handlers: [get_task, create_task], // will be turned into routes
resources: [ModelManager {}, AiManager {}] // common resources for all calls
);
Is equivalent to:
RouterBuilder::default()
.append_dyn("get_task", get_task.into_box())
.append_dyn("create_task", create_task.into_box())
.append_resource(ModelManager {})
.append_resource(AiManager {})
§Pattern 3 - Just for consistency with Pattern 2, we can have omit the resources
router_builder!(
handlers: [get_task, create_task]
);