Expand description
Handler function integration for ring kernel transpilation.
This module provides utilities for parsing handler function signatures, extracting message/response types, and generating the code that binds handlers to the ring kernel message loop.
§Handler Signature Patterns
Ring kernel handlers follow specific patterns:
ⓘ
// Pattern 1: Message in, response out
fn handle(ctx: &RingContext, msg: &MyMessage) -> MyResponse { ... }
// Pattern 2: Message in, no response (fire-and-forget)
fn handle(ctx: &RingContext, msg: &MyMessage) { ... }
// Pattern 3: Simple value processing
fn process(value: f32) -> f32 { ... }§Generated Code
The handler body is embedded within the message loop with proper message deserialization and response serialization:
// Message pointer from buffer
MyMessage* msg = (MyMessage*)&input_buffer[msg_idx * MSG_SIZE];
// === Handler body (transpiled) ===
float result = msg->value * 2.0f;
MyResponse response;
response.value = result;
// ================================
// Enqueue response
memcpy(&output_buffer[out_idx * RESP_SIZE], &response, sizeof(MyResponse));Structs§
- Handler
Codegen Config - Configuration for handler code generation.
- Handler
Param - Information about a handler function parameter.
- Handler
Return Type - Handler return type information.
- Handler
Signature - Parsed handler function signature.
- Message
Type Info - Message type information for code generation.
- Message
Type Registry - Registry of message types for a kernel.
Enums§
- Context
Method - RingContext method mappings to CUDA intrinsics.
- Handler
Param Kind - Kinds of handler parameters.
Functions§
- generate_
cuda_ struct - Generate a CUDA struct definition from field information.
- generate_
envelope_ message_ deser - Generate message deserialization code for envelope format with header access.
- generate_
envelope_ response_ ser - Generate response serialization code for envelope format.
- generate_
message_ deser - Generate message deserialization code.
- generate_
response_ ser - Generate response serialization code (legacy raw format).