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}