Skip to main content

Mojo module

variadics

Implements the VariadicList and VariadicPack types.

These are Mojo built-ins, so you don't need to import them.

Aliases

Concatenated

comptime Concatenated[T: AnyTrait[AnyType], //, *Ts: Variadic[T]] = #kgen.variadic.concat<#kgen.param.decl.ref<"Ts"> : !kgen.variadic<variadic<:!lit.anytrait<<@stdlib::@builtin::@anytype::@AnyType>> T>>>

Represents the concatenation of multiple variadic sequences of types.

Parameters

  • T (AnyTrait):
  • *Ts (Variadic):

EmptyVariadic

comptime EmptyVariadic[T: AnyTrait[AnyType]] =

Empty comptime variadic of type values

Parameters

  • T (AnyTrait):

MakeVariadic

comptime MakeVariadic[T: AnyTrait[AnyType], //, *Ts: T] = Ts

Turn discrete type values (bound by T) into a single variadic

Parameters

  • T (AnyTrait):
  • *Ts (T):

Reversed

comptime Reversed[T: AnyTrait[Copyable & Movable], //, *element_types: T] = #kgen.variadic.reduce<#kgen.variadic<> : !kgen.variadic<:!lit.anytrait<<@stdlib::@builtin::@value::@Copyable, @stdlib::@builtin::@value::@Movable>> T>, #kgen.param.decl.ref<"element_types"> : !kgen.variadic<:!lit.anytrait<<@stdlib::@builtin::@value::@Copyable, @stdlib::@builtin::@value::@Movable>> T>, #kgen.gen<#kgen.variadic.concat<#kgen.variadic<*(0,0), [variadic_get(:variadic<:!lit.anytrait<<@stdlib::@builtin::@value::@Copyable, @stdlib::@builtin::@value::@Movable>> T> *(0,1), add(mul(*(0,2), -1), #kgen.variadic.size<#kgen.param.index.ref<0, 1> : !kgen.variadic<:!lit.anytrait<<@stdlib::@builtin::@value::@Copyable, @stdlib::@builtin::@value::@Movable>> T>>, -1))]> : !kgen.variadic<variadic<:!lit.anytrait<<@stdlib::@builtin::@value::@Copyable, @stdlib::@builtin::@value::@Movable>> T>>>> : !kgen.generator<!lit.generator<<"PrevV": variadic<:!lit.anytrait<<@stdlib::@builtin::@value::@Copyable, @stdlib::@builtin::@value::@Movable>> T>, "VA": variadic<:!lit.anytrait<<@stdlib::@builtin::@value::@Copyable, @stdlib::@builtin::@value::@Movable>> T>, "idx": index>variadic<:!lit.anytrait<<@stdlib::@builtin::@value::@Copyable, @stdlib::@builtin::@value::@Movable>> T>>>>

A wrapper to reverse a variadic sequence of types.

Parameters

  • T (AnyTrait & Movable]):
  • *element_types (T): The variadic sequence of types to reverse.

Variadic

comptime Variadic[type: AnyType] = Variadic[type]

Represents a raw variadic sequence of values of the specified type.

Parameters

VariadicOf

comptime VariadicOf[T: AnyTrait[AnyType]] = Variadic[T]

Represents a raw variadic sequence of types that satisfy the specified trait.

Parameters

  • T (AnyTrait):

Structs

  • VariadicList: A utility class to access homogeneous variadic function arguments.
  • VariadicListMem: A utility class to access variadic function arguments of memory-only types that may have ownership. It exposes references to the elements in a way that can be enumerated. Each element may be accessed with elt[].
  • VariadicPack: A utility class to access heterogeneous variadic function arguments.

Functions

Was this page helpful?