Tools for interacting with kumi::product_type. More...
Classes | |
| class | kumi::builder< T > |
| Helper structure to build the correct output product type based on the given template parameter. If the provided product type is a not a record_type the builder will output a tuple otherwise a record. One can specialize the builder for it's own type matching the product type semantic. More... | |
| class | kumi::projection_map< V > |
| A stateless, compile-time schema for product type transformation. More... | |
Functions | |
| auto | as_streamable (auto e) |
| Provides an extension point as_streamable in order to output types with no stream operator defined. | |
| template<kumi_implementation_defined auto Name, typename T> | |
| decltype(auto) constexpr | capture_field (T &&t) noexcept |
| Creates a field from a given value keeping the qualifiers. | |
| template<typename U, typename T> | |
| decltype(auto) constexpr | field_cast (T &&t) noexcept |
| Casts the provided value to the target type using static_cast. | |
| template<typename T> | |
| constexpr decltype(auto) | kumi::field_value_of (T &&t) noexcept |
| Extracts the value from a kumi::concepts::field or returns the parameter. | |
| template<concepts::identifier Id, concepts::product_type T> requires (concepts::queryable_by_identifier<Id, T>) | |
| consteval auto | kumi::get_index_of_field () |
| Helper to retrive the index of a type in a product type by it s identifier. | |
| template<str L, concepts::product_type T> requires (concepts::queryable_by_label<label_t<L>, T>) | |
| consteval auto | kumi::get_index_of_label () |
| Helper to retrive the index of a type in a product type by it s identifier. | |
| template<typename U, concepts::product_type T> requires (concepts::queryable_by_type<U, T>) | |
| consteval auto | kumi::get_index_of_type () |
| Helper to retrive the index of a type in a product type by it s type. | |
| template<typename T> | |
| consteval auto | kumi::identifier_of () noexcept |
| Extracts the identifiers from a kumi::concepts::field or returns the parameter. | |
| template<concepts::identifier... Ts> | |
| consteval auto | kumi::identifiers (Ts...) noexcept |
| Creates a kumi::projection_map object, deducing the target type from the types of arguments. | |
| template<concepts::index... Ts> | |
| consteval auto | kumi::indexes (Ts...) noexcept |
| Creates a kumi::projection_map object, deducing the target type from the types of arguments. | |
| template<typename T> | |
| consteval str | kumi::label_of () noexcept |
| Extracts the label from a kumi::concepts::field or returns the parameter. | |
| template<std::convertible_to< std::size_t > auto... vs> | |
| consteval auto | kumi::make_indexes () noexcept |
| Creates a kumi::projection_map object, deducing the target type from the types of arguments. | |
| template<char... c> | |
| constexpr auto | kumi::operator""_c () noexcept |
| Forms a integral constant literal of the desired value. | |
| template<kumi::str ID> | |
| constexpr auto | kumi::operator""_id () noexcept |
| Forms a constant string literal of the desired value. | |
| template<kumi::str ID> | |
| constexpr auto | kumi::operator""_l () noexcept |
| Forms a constant string literal of the desired value. | |
| template<template< class > class Pred> | |
| constexpr auto | kumi::predicate () noexcept |
| Convert a unary template meta-program in a running predicate. | |
| template<concepts::projection... Ts> | |
| KUMI_CUDA | kumi::projection_map (Ts...) -> projection_map< Ts |
| kumi::projection_map deduction guide | |
| kumi::str constexpr | to_str (auto e) |
| Provides an extension point to_str in order to output types with no textual representation defined. | |
Friends | |
| template<typename CharT, typename Traits> | |
| std::basic_ostream< CharT, Traits > & | operator<< (std::basic_ostream< CharT, Traits > &os, field const &w) noexcept |
| Inserts a kumi::field in an output stream. | |
| template<typename CharT, typename Traits> | |
| std::basic_ostream< CharT, Traits > & | operator<< (std::basic_ostream< CharT, Traits > &os, field const &w) noexcept |
| Inserts a kumi::field in an output stream. | |
Variables | |
| template<template< class > typename Traits> | |
| constexpr traits_check< Traits > | kumi::if_ = {} |
| Option specifying a traits that type should verify for being used as a identifier value. | |
| template<std::size_t N> | |
| constexpr index_t< N > const | kumi::index = {} |
| Inline integral constant value for kumi::index_t. | |
| template<str Label> | |
| constexpr label_t< Label > | kumi::label = {} |
| Inline literal constant value for kumi::label_t. | |
| constexpr unit | kumi::none = {} |
| Inline constant representing a kumi::unit. | |
| template<typename T> | |
| constexpr only_t< T > | kumi::only = {} |
| Option specifying the single type a identifier will accept. | |