Skip to main content

luaur_bytecode/functions/
read_string.rs

1extern crate alloc;
2use luaur_common::functions::read_var_int::read_var_int;
3use luaur_common::macros::luau_assert::LUAU_ASSERT;
4
5pub(crate) fn read_string<'a>(
6    strings: &'a [&'a [u8]],
7    data: &[u8],
8    offset: &mut usize,
9) -> &'a [u8] {
10    let string_id = read_var_int(data, offset);
11    LUAU_ASSERT!(string_id as usize <= strings.len());
12
13    if string_id == 0 {
14        return &[];
15    }
16
17    strings[(string_id - 1) as usize]
18}