SERiF v0.0.1a
Stellar Evolution and Rotation in Four Dimensions
Loading...
Searching...
No Matches
cache_traits.hpp File Reference
#include <concepts>
#include <cstddef>
#include <type_traits>
#include <utility>
#include <variant>
#include "serif/utils/dependencies/detail/schema.hpp"
#include "serif/utils/misc/concepts/filter.hpp"
Include dependency graph for cache_traits.hpp:
This graph shows which files directly or indirectly include this file:

Classes

struct  serif::utils::dependencies::detail::UsedResource< GraphT >
 
struct  serif::utils::dependencies::detail::UsedResource< GraphT >::Predicate< ResourceT >
 
struct  serif::utils::dependencies::detail::ResourceKeys< types::TypeList< Resources... > >
 
struct  serif::utils::dependencies::detail::ComputationCacheTraits< GraphT, ContextT, ErrorT, Valid >
 
struct  serif::utils::dependencies::detail::ComputationCacheTraits< GraphT, ContextT, ErrorT, true >
 

Namespaces

namespace  serif
 
namespace  serif::utils
 
namespace  serif::utils::dependencies
 
namespace  serif::utils::dependencies::detail
 

Concepts

concept  serif::utils::dependencies::CanPrepare
 

Typedefs

template<typename GraphT, typename ContextT>
using serif::utils::dependencies::detail::UsedResources = misc::concepts::FilterT<typename ContextT::Resources, UsedResource<GraphT>::template Predicate>
 

Functions

template<typename GraphT, typename BindingsT, typename ErrorT, std::size_t... Indices>
consteval bool serif::utils::dependencies::detail::compatible_errors (std::index_sequence< Indices... >)
 Value-returning calculations can share a graph with expected results carrying its declared error or an exact union alternative.
 

Variables

template<typename Source, typename Target>
constexpr bool serif::utils::dependencies::detail::compatible_error_v = std::same_as<Source, Target>
 Ordinary graph failures retain an exact type; numerical conversions must not erase diagnostics.
 
template<typename Source, typename... Alternatives>
constexpr bool serif::utils::dependencies::detail::compatible_error_v< Source, std::variant< Alternatives... > >
 Independent modules may explicitly aggregate their unchanged failures in an unambiguous tagged union.