Skip to main content

Module named_args

Module named_args 

Source
Expand description

Named kernel arguments for enhanced debuggability and type safety.

This module provides NamedKernelArgs, a trait that extends KernelArgs with human-readable argument names, and ArgBuilder, a builder that constructs argument pointer arrays with associated names for logging and debugging.

§Motivation

Standard kernel arguments are positional tuples with no names. When debugging kernel launches, it is helpful to know which argument corresponds to which kernel parameter. NamedKernelArgs bridges this gap by associating names with arguments.

§Example

use oxicuda_launch::named_args::ArgBuilder;

let a_ptr: u64 = 0x1000;
let n: u32 = 1024;
let mut builder = ArgBuilder::new();
builder.add("a_ptr", &a_ptr).add("n", &n);
assert_eq!(builder.names(), &["a_ptr", "n"]);
let ptrs = builder.build();
assert_eq!(ptrs.len(), 2);

Structs§

ArgBuilder
A builder for constructing named kernel argument arrays.
FixedNamedArgs
A const-generic, stack-allocated array of named kernel arguments.
NamedArgEntry
A single named argument entry: a static string name paired with a raw const pointer to the argument value (already on the stack in the caller).

Traits§

NamedKernelArgs
Extension of KernelArgs that provides argument metadata.