mlua-socket 0.2.7

A Rust-native implementation of LuaSocket for mlua.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
use super::tcp::Tcp;
use mlua::{Error, FromLua, Lua, MultiValue};
use std::time::Duration;

pub(super) fn handle(lua: &Lua, tcp: &Tcp, args: MultiValue) -> Result<(), Error> {
    // Parse arg
    let timeout = f32::from_lua(args[0].clone(), lua).map_err(|err| Error::RuntimeError(err.to_string()))?;

    // Perform
    let duration = Duration::from_millis((timeout * 1e6) as u64);
    tcp.socket.set_read_timeout(Some(duration))?;
    tcp.socket.set_write_timeout(Some(duration))?;

    Ok(())
}