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}