luaur_compiler/methods/
constant_get_string.rs1use crate::enums::type_constant_folding::Type;
2use crate::records::constant::Constant;
3use core::ffi::c_char;
4use core::mem::transmute;
5use luaur_ast::records::ast_array::AstArray;
6use luaur_common::macros::luau_assert::LUAU_ASSERT;
7
8impl Constant {
9 pub fn get_string(&self) -> AstArray<c_char> {
10 LUAU_ASSERT!(self.r#type == Type::Type_String);
11 let data = unsafe { self.data.value_string as *mut c_char };
12 let size = self.string_length as usize;
13 unsafe { transmute::<(*mut c_char, usize), AstArray<c_char>>((data, size)) }
14 }
15}