Skip to main content

luaur_code_gen/records/
host_ir_hooks.rs

1//! Translated from CodeGenOptions.h:74 (field-for-field).
2//! Node: `cxx:Record:Luau.CodeGen:CodeGen/include/Luau/CodeGenOptions.h:74:host_ir_hooks`
3//! Source: `CodeGen/include/Luau/CodeGenOptions.h`
4//! Graph edges:
5//! - declared_by: source_file CodeGen/include/Luau/CodeGenOptions.h
6//! - incoming:
7//!   - declares <- source_file CodeGen/include/Luau/CodeGenOptions.h
8//!   - type_ref <- record CompilationOptions (CodeGen/include/Luau/CodeGenOptions.h)
9//!   - type_ref <- record IrBuilder (CodeGen/include/Luau/IrBuilder.h)
10//!   - type_ref <- method IrBuilder::IrBuilder (CodeGen/src/IrBuilder.cpp)
11//!   - type_ref <- function analyzeBytecodeTypes (CodeGen/src/BytecodeAnalysis.cpp)
12//!   - type_ref <- record IrAssemblyFixture (tests/IrAssembly.test.cpp)
13//!   - type_ref <- record IrBuilderFixture (tests/IrBuilder.test.cpp)
14//! - outgoing:
15//!   - type_ref -> type_alias HostVectorOperationBytecodeType (CodeGen/include/Luau/CodeGenOptions.h)
16//!   - type_ref -> type_alias HostVectorAccessHandler (CodeGen/include/Luau/CodeGenOptions.h)
17//!   - type_ref -> type_alias HostVectorNamecallHandler (CodeGen/include/Luau/CodeGenOptions.h)
18//!   - type_ref -> type_alias HostUserdataOperationBytecodeType (CodeGen/include/Luau/CodeGenOptions.h)
19//!   - type_ref -> type_alias HostUserdataMetamethodBytecodeType (CodeGen/include/Luau/CodeGenOptions.h)
20//!   - type_ref -> type_alias HostUserdataAccessHandler (CodeGen/include/Luau/CodeGenOptions.h)
21//!   - type_ref -> type_alias HostUserdataMetamethodHandler (CodeGen/include/Luau/CodeGenOptions.h)
22//!   - type_ref -> type_alias HostUserdataNamecallHandler (CodeGen/include/Luau/CodeGenOptions.h)
23//!   - translates_to -> rust_item HostIrHooks
24
25use crate::type_aliases::host_userdata_access_handler::HostUserdataAccessHandler;
26use crate::type_aliases::host_userdata_metamethod_bytecode_type::HostUserdataMetamethodBytecodeType;
27use crate::type_aliases::host_userdata_metamethod_handler::HostUserdataMetamethodHandler;
28use crate::type_aliases::host_userdata_namecall_handler::HostUserdataNamecallHandler;
29use crate::type_aliases::host_userdata_operation_bytecode_type::HostUserdataOperationBytecodeType;
30use crate::type_aliases::host_vector_access_handler::HostVectorAccessHandler;
31use crate::type_aliases::host_vector_namecall_handler::HostVectorNamecallHandler;
32use crate::type_aliases::host_vector_operation_bytecode_type::HostVectorOperationBytecodeType;
33
34#[derive(Debug, Clone, Default)]
35pub struct HostIrHooks {
36    pub vector_access_bytecode_type: HostVectorOperationBytecodeType,
37    pub vector_namecall_bytecode_type: HostVectorOperationBytecodeType,
38    pub vector_access: HostVectorAccessHandler,
39    pub vector_namecall: HostVectorNamecallHandler,
40    pub userdata_access_bytecode_type: HostUserdataOperationBytecodeType,
41    pub userdata_metamethod_bytecode_type: HostUserdataMetamethodBytecodeType,
42    pub userdata_namecall_bytecode_type: HostUserdataOperationBytecodeType,
43    pub userdata_access: HostUserdataAccessHandler,
44    pub userdata_metamethod: HostUserdataMetamethodHandler,
45    pub userdata_namecall: HostUserdataNamecallHandler,
46}