1use config::{any_err, get_or_create_sub_module};
2use mlua::{Lua, LuaSerdeExt};
3
4mod amqprs_client;
5mod lapin_client;
6
7pub fn register(lua: &Lua) -> anyhow::Result<()> {
8 let amqp_mod = get_or_create_sub_module(lua, "amqp")?;
9
10 amqp_mod.set(
11 "build_client",
12 lua.create_async_function(|_, uri: String| async move {
13 lapin_client::build_client(uri).await.map_err(any_err)
14 })?,
15 )?;
16
17 amqp_mod.set(
18 "basic_publish",
19 lua.create_async_function(|lua, params: mlua::Value| async move {
20 let params: amqprs_client::PublishParams = lua.from_value(params)?;
21 amqprs_client::publish(params).await.map_err(any_err)
22 })?,
23 )?;
24
25 Ok(())
26}