mlua-socket 0.2.7

A Rust-native implementation of LuaSocket for mlua.
use base64::{Engine as _, engine::general_purpose};
use mlua::{Error, Lua};

pub(super) fn handle(_lua: &Lua, data: mlua::String) -> Result<String, Error> {
    let encoded: String = general_purpose::STANDARD.encode(data.as_bytes());
    Ok(encoded)
}

#[cfg(test)]
mod tests {
    use mlua::Lua;
    use std::error::Error;

    #[test]
    fn b64() -> Result<(), Box<dyn Error>> {
        let lua = Lua::new();
        crate::preload(&lua)?;
        let encoded: String = lua
            .load(
                r#"
                local mime = require('mime')
                return mime.b64('abcd')
            "#,
            )
            .eval()?;
        assert_eq!(encoded, "YWJjZA==");
        Ok(())
    }
}