mlua-kafka 1.0.0

An rdkafka-based implementation of LuaRocks chensoft/kafka for mlua.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
use super::Consumer;
use mlua::{Error, Lua, MultiValue, Value};
use rdkafka::consumer::Consumer as RdKafkaConsumer;

pub(super) fn handle(_lua: &Lua, consumer: &Consumer, topics: MultiValue) -> Result<(), Error> {
    let args: Vec<Value> = topics.into_iter().collect();
    let topics: Vec<String> = args.iter().map(|x| x.to_string().unwrap()).collect();
    let topics: Vec<_> = topics.iter().map(String::as_str).collect();
    consumer
        .consumer
        .subscribe(&topics)
        .map_err(|err| Error::RuntimeError(err.to_string()))?;
    Ok(())
}