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 toCopyable.
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 toDefaultable.
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 toEquatable.
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 toImplicitlyCopyable.
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 toMovable.
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 toWritable.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!