Module handler

Module handler 

Source
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§

HandlerCodegenConfig
Configuration for handler code generation.
HandlerParam
Information about a handler function parameter.
HandlerReturnType
Handler return type information.
HandlerSignature
Parsed handler function signature.
MessageTypeInfo
Message type information for code generation.
MessageTypeRegistry
Registry of message types for a kernel.

Enums§

ContextMethod
RingContext method mappings to CUDA intrinsics.
HandlerParamKind
Kinds of handler parameters.

Functions§

generate_cuda_struct
Generate a CUDA struct definition from field information.
generate_message_deser
Generate message deserialization code.
generate_response_ser
Generate response serialization code.