Everett
Loading...
Searching...
No Matches
Classes | Namespaces | Enumerations | Functions | Variables
registry.h File Reference

Describes sort codes, encoding requirements and typed registry dispatch. More...

#include <everett/error_detail.h>
#include <cstddef>
#include <cstdint>
#include <functional>
#include <limits>
#include <optional>
#include <stdexcept>
#include <string>
#include <tuple>
#include <type_traits>
#include <utility>

Go to the source code of this file.

Classes

struct  everett::variable_values
 
struct  everett::fixed_values< N >
 
struct  everett::registry_detail::value_bits< variable_values, Shift >
 
struct  everett::registry_detail::value_bits< fixed_values< N >, Shift >
 
struct  everett::byte_encoding< Values >
 
struct  everett::bit_encoding< Values >
 
struct  everett::encoded_sort< Codec >
 
struct  everett::value_encoding< T >
 
struct  everett::value_encoding< std::string >
 
struct  everett::value_encoding< std::optional< std::string > >
 
struct  everett::unsorted< T >
 
struct  everett::sort_undefined
 
struct  everett::tip< S >
 
struct  everett::bin< L, R >
 
struct  everett::sort_list< S >
 
struct  everett::registry_detail::sorts< S >
 
struct  everett::registry_detail::concatenate< sorts< A... >, sorts< B... > >
 
struct  everett::registry_detail::unique< sorts<> >
 
struct  everett::registry_detail::unique< sorts< A, B... > >
 
struct  everett::registry_detail::empty
 
struct  everett::registry_detail::leaf< S, bool >
 
struct  everett::registry_detail::leaf< S, false >
 
struct  everett::registry_detail::join< A, B >
 
struct  everett::registry_detail::list_width< S >
 
struct  everett::registry_detail::list_width< S, Rest... >
 
struct  everett::registry_detail::info< unsorted< T > >
 
struct  everett::registry_detail::info< sort_undefined >
 
struct  everett::registry_detail::info< tip< S > >
 
struct  everett::registry_detail::info< bin< L, R > >
 
struct  everett::registry_detail::info< sort_list< S... > >
 
struct  everett::registry_detail::extension< Old, New >
 
struct  everett::registry_detail::extension< unsorted< T >, tip< unsorted< T > > >
 
struct  everett::registry_detail::extension< tip< unsorted< T > >, unsorted< T > >
 
struct  everett::registry_detail::extension< bin< OL, OR >, bin< NL, NR > >
 
struct  everett::registry_detail::extension< sort_list< O... >, sort_list< N... > >
 
struct  everett::registry_detail::extends< Old, New >
 
struct  everett::registry_detail::result< sorts<>, Reader, Visitor >
 
struct  everett::registry_detail::result< sorts< S, Rest... >, Reader, Visitor >
 
struct  everett::registry_detail::dispatch< sort_undefined >
 
struct  everett::registry_detail::dispatch< tip< S > >
 
struct  everett::registry_detail::dispatch< unsorted< T > >
 
struct  everett::registry_detail::dispatch< bin< L, R > >
 
struct  everett::registry_detail::dispatch< sort_list< S... > >
 
struct  everett::registry_traits< R >
 
struct  everett::registry_extends< Old, New >
 

Namespaces

namespace  everett
 
namespace  everett::registry_detail
 

Enumerations

enum class  everett::profile_unit : std::uint8_t { everett::byte , everett::bit }
 

Functions

template<class Old , class New , std::size_t... I>
consteval bool everett::registry_detail::list_extends (std::index_sequence< I... >)
 
std::uint64_t everett::registry_detail::discriminator (auto &reader, unsigned width)
 
template<class S , class Result , class Reader , class Visitor >
Result everett::registry_detail::visit (Reader &reader, Visitor &&visitor)
 
template<class R , class Reader , class Visitor >
decltype(auto) everett::dispatch_sort (Reader &reader, Visitor &&visitor)
 

Variables

template<class T >
constexpr bool everett::registry_detail::hole = std::is_same_v<T, sort_undefined>
 
template<class Old , class New >
constexpr bool everett::registry_extends_v = registry_extends<Old, New>::value
 

Detailed Description

Describes sort codes, encoding requirements and typed registry dispatch.

Author
Edward Kmett ekmet.nosp@m.t@gm.nosp@m.ail.c.nosp@m.om
SPDX-FileType: SOURCE
SPDX-FileCopyrightText: 2026 Edward Kmett <ekmett@gmail.com>
SPDX-License-Identifier: BSD-2-Clause OR Apache-2.0