1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
use rlua::prelude::*; use std::fs; use std::io::Read; use xz2::read::*; use super::ByteBuf; pub fn init(lua: &Lua) -> crate::Result<()> { let module = lua.create_table()?; module.set("decompress", lua.create_function(|_, file: (String)| { let file = fs::File::open(&file).map_err(LuaError::external)?; let mut data = XzDecoder::new(file); let mut buf = vec![]; data.read_to_end(&mut buf).map_err(LuaError::external)?; Ok(ByteBuf(buf)) })?)?; lua.globals().set("xz", module)?; Ok(()) }