Skip to main content

Mojo module

traits

Compile-time meta functions for checking trait conformance across variadic type lists.

comptime values

AllCopyable

comptime AllCopyable[*Ts: AnyType] = #kgen.variadic.reduce<#kgen.variadic<{:i1 1}> : !kgen.variadic<!lit.struct<@std::@builtin::@bool::@Bool>>, #kgen.param.decl.ref<"Ts"> : !kgen.variadic<trait<@std::@builtin::@anytype::@AnyType>>, #kgen.gen<[cond(sugar_preserved(#lit.struct.extract<:!lit.struct<@std::@builtin::@bool::@Bool> apply(:!lit.generator<("value": i1) -> !lit.struct<@std::@builtin::@bool::@Bool>> @std::@builtin::@bool::@Bool::@"__init__(i1)", conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::Copyable"])), "_mlir_value">, conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::Copyable"])), variadic_get(:variadic<!lit.struct<@std::@builtin::@bool::@Bool>> *(0,0), 0), sugar_builtin(apply(:!lit.generator<("value": i1) -> !lit.struct<@std::@builtin::@bool::@Bool>> @std::@builtin::@bool::@Bool::@"__init__(i1)", conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::Copyable"])), {:i1 conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::Copyable"])}))]> : !kgen.generator<!lit.generator<<"PrevV": variadic<!lit.struct<@std::@builtin::@bool::@Bool>>, "VA": variadic<trait<@std::@builtin::@anytype::@AnyType>>, "idx": index>variadic<!lit.struct<@std::@builtin::@bool::@Bool>>>>>[0]

Evaluates to True if all types in Ts conform to Copyable, False otherwise.

Parameters

  • *Ts (AnyType): The types to check for conformance to Copyable.

AllDefaultable

comptime AllDefaultable[*Ts: AnyType] = #kgen.variadic.reduce<#kgen.variadic<{:i1 1}> : !kgen.variadic<!lit.struct<@std::@builtin::@bool::@Bool>>, #kgen.param.decl.ref<"Ts"> : !kgen.variadic<trait<@std::@builtin::@anytype::@AnyType>>, #kgen.gen<[cond(sugar_preserved(#lit.struct.extract<:!lit.struct<@std::@builtin::@bool::@Bool> apply(:!lit.generator<("value": i1) -> !lit.struct<@std::@builtin::@bool::@Bool>> @std::@builtin::@bool::@Bool::@"__init__(i1)", conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::Defaultable"])), "_mlir_value">, conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::Defaultable"])), variadic_get(:variadic<!lit.struct<@std::@builtin::@bool::@Bool>> *(0,0), 0), sugar_builtin(apply(:!lit.generator<("value": i1) -> !lit.struct<@std::@builtin::@bool::@Bool>> @std::@builtin::@bool::@Bool::@"__init__(i1)", conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::Defaultable"])), {:i1 conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::Defaultable"])}))]> : !kgen.generator<!lit.generator<<"PrevV": variadic<!lit.struct<@std::@builtin::@bool::@Bool>>, "VA": variadic<trait<@std::@builtin::@anytype::@AnyType>>, "idx": index>variadic<!lit.struct<@std::@builtin::@bool::@Bool>>>>>[0]

Evaluates to True if all types in Ts conform to Defaultable, False otherwise.

Parameters

  • *Ts (AnyType): The types to check for conformance to Defaultable.

AllEquatable

comptime AllEquatable[*Ts: AnyType] = #kgen.variadic.reduce<#kgen.variadic<{:i1 1}> : !kgen.variadic<!lit.struct<@std::@builtin::@bool::@Bool>>, #kgen.param.decl.ref<"Ts"> : !kgen.variadic<trait<@std::@builtin::@anytype::@AnyType>>, #kgen.gen<[cond(sugar_preserved(#lit.struct.extract<:!lit.struct<@std::@builtin::@bool::@Bool> apply(:!lit.generator<("value": i1) -> !lit.struct<@std::@builtin::@bool::@Bool>> @std::@builtin::@bool::@Bool::@"__init__(i1)", conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::comparable::Equatable"])), "_mlir_value">, conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::comparable::Equatable"])), variadic_get(:variadic<!lit.struct<@std::@builtin::@bool::@Bool>> *(0,0), 0), sugar_builtin(apply(:!lit.generator<("value": i1) -> !lit.struct<@std::@builtin::@bool::@Bool>> @std::@builtin::@bool::@Bool::@"__init__(i1)", conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::comparable::Equatable"])), {:i1 conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::comparable::Equatable"])}))]> : !kgen.generator<!lit.generator<<"PrevV": variadic<!lit.struct<@std::@builtin::@bool::@Bool>>, "VA": variadic<trait<@std::@builtin::@anytype::@AnyType>>, "idx": index>variadic<!lit.struct<@std::@builtin::@bool::@Bool>>>>>[0]

Evaluates to True if all types in Ts conform to Equatable, False otherwise.

Parameters

  • *Ts (AnyType): The types to check for conformance to Equatable.

AllImplicitlyCopyable

comptime AllImplicitlyCopyable[*Ts: AnyType] = #kgen.variadic.reduce<#kgen.variadic<{:i1 1}> : !kgen.variadic<!lit.struct<@std::@builtin::@bool::@Bool>>, #kgen.param.decl.ref<"Ts"> : !kgen.variadic<trait<@std::@builtin::@anytype::@AnyType>>, #kgen.gen<[cond(sugar_preserved(#lit.struct.extract<:!lit.struct<@std::@builtin::@bool::@Bool> apply(:!lit.generator<("value": i1) -> !lit.struct<@std::@builtin::@bool::@Bool>> @std::@builtin::@bool::@Bool::@"__init__(i1)", conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::ImplicitlyCopyable"])), "_mlir_value">, conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::ImplicitlyCopyable"])), variadic_get(:variadic<!lit.struct<@std::@builtin::@bool::@Bool>> *(0,0), 0), sugar_builtin(apply(:!lit.generator<("value": i1) -> !lit.struct<@std::@builtin::@bool::@Bool>> @std::@builtin::@bool::@Bool::@"__init__(i1)", conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::ImplicitlyCopyable"])), {:i1 conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::ImplicitlyCopyable"])}))]> : !kgen.generator<!lit.generator<<"PrevV": variadic<!lit.struct<@std::@builtin::@bool::@Bool>>, "VA": variadic<trait<@std::@builtin::@anytype::@AnyType>>, "idx": index>variadic<!lit.struct<@std::@builtin::@bool::@Bool>>>>>[0]

Evaluates to True if all types in Ts conform to ImplicitlyCopyable, False otherwise.

Parameters

  • *Ts (AnyType): The types to check for conformance to ImplicitlyCopyable.

AllMovable

comptime AllMovable[*Ts: AnyType] = #kgen.variadic.reduce<#kgen.variadic<{:i1 1}> : !kgen.variadic<!lit.struct<@std::@builtin::@bool::@Bool>>, #kgen.param.decl.ref<"Ts"> : !kgen.variadic<trait<@std::@builtin::@anytype::@AnyType>>, #kgen.gen<[cond(sugar_preserved(#lit.struct.extract<:!lit.struct<@std::@builtin::@bool::@Bool> apply(:!lit.generator<("value": i1) -> !lit.struct<@std::@builtin::@bool::@Bool>> @std::@builtin::@bool::@Bool::@"__init__(i1)", conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::Movable"])), "_mlir_value">, conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::Movable"])), variadic_get(:variadic<!lit.struct<@std::@builtin::@bool::@Bool>> *(0,0), 0), sugar_builtin(apply(:!lit.generator<("value": i1) -> !lit.struct<@std::@builtin::@bool::@Bool>> @std::@builtin::@bool::@Bool::@"__init__(i1)", conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::Movable"])), {:i1 conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::builtin::value::Movable"])}))]> : !kgen.generator<!lit.generator<<"PrevV": variadic<!lit.struct<@std::@builtin::@bool::@Bool>>, "VA": variadic<trait<@std::@builtin::@anytype::@AnyType>>, "idx": index>variadic<!lit.struct<@std::@builtin::@bool::@Bool>>>>>[0]

Evaluates to True if all types in Ts conform to Movable, False otherwise.

Parameters

  • *Ts (AnyType): The types to check for conformance to Movable.

AllWritable

comptime AllWritable[*Ts: AnyType] = #kgen.variadic.reduce<#kgen.variadic<{:i1 1}> : !kgen.variadic<!lit.struct<@std::@builtin::@bool::@Bool>>, #kgen.param.decl.ref<"Ts"> : !kgen.variadic<trait<@std::@builtin::@anytype::@AnyType>>, #kgen.gen<[cond(sugar_preserved(#lit.struct.extract<:!lit.struct<@std::@builtin::@bool::@Bool> apply(:!lit.generator<("value": i1) -> !lit.struct<@std::@builtin::@bool::@Bool>> @std::@builtin::@bool::@Bool::@"__init__(i1)", conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::format::__init__::Writable"])), "_mlir_value">, conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::format::__init__::Writable"])), variadic_get(:variadic<!lit.struct<@std::@builtin::@bool::@Bool>> *(0,0), 0), sugar_builtin(apply(:!lit.generator<("value": i1) -> !lit.struct<@std::@builtin::@bool::@Bool>> @std::@builtin::@bool::@Bool::@"__init__(i1)", conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::format::__init__::Writable"])), {:i1 conforms_to(:trait<@std::@builtin::@anytype::@AnyType> variadic_get(:variadic<trait<@std::@builtin::@anytype::@AnyType>> *(0,1), *(0,2)), ["std::format::__init__::Writable"])}))]> : !kgen.generator<!lit.generator<<"PrevV": variadic<!lit.struct<@std::@builtin::@bool::@Bool>>, "VA": variadic<trait<@std::@builtin::@anytype::@AnyType>>, "idx": index>variadic<!lit.struct<@std::@builtin::@bool::@Bool>>>>>[0]

Evaluates to True if all types in Ts conform to Writable, False otherwise.

Parameters

  • *Ts (AnyType): The types to check for conformance to Writable.

Was this page helpful?