\doxysection{src/include/serif/utils/dependencies/detail/cache\+\_\+traits.hpp File Reference} \hypertarget{cache__traits_8hpp}{}\label{cache__traits_8hpp}\index{src/include/serif/utils/dependencies/detail/cache\_traits.hpp@{src/include/serif/utils/dependencies/detail/cache\_traits.hpp}} {\ttfamily \#include $<$concepts$>$}\newline {\ttfamily \#include $<$cstddef$>$}\newline {\ttfamily \#include $<$type\+\_\+traits$>$}\newline {\ttfamily \#include $<$utility$>$}\newline {\ttfamily \#include $<$variant$>$}\newline {\ttfamily \#include "{}serif/utils/dependencies/detail/schema.\+hpp"{}}\newline {\ttfamily \#include "{}serif/utils/misc/concepts/filter.\+hpp"{}}\newline Include dependency graph for cache\+\_\+traits.\+hpp\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{cache__traits_8hpp__incl} \end{center} \end{figure} This graph shows which files directly or indirectly include this file\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{cache__traits_8hpp__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item struct \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1detail_1_1_used_resource}{serif\+::utils\+::dependencies\+::detail\+::\+Used\+Resource$<$ Graph\+T $>$}} \item struct \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1detail_1_1_used_resource_1_1_predicate}{serif\+::utils\+::dependencies\+::detail\+::\+Used\+Resource$<$ Graph\+T $>$\+::\+Predicate$<$ Resource\+T $>$}} \item struct \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1detail_1_1_resource_keys_3_01types_1_1_type_list_3_01_resources_8_8_8_01_4_01_4}{serif\+::utils\+::dependencies\+::detail\+::\+Resource\+Keys$<$ types\+::\+Type\+List$<$ Resources... $>$ $>$}} \item struct \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1detail_1_1_computation_cache_traits}{serif\+::utils\+::dependencies\+::detail\+::\+Computation\+Cache\+Traits$<$ Graph\+T, Context\+T, Error\+T, Valid $>$}} \item struct \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1detail_1_1_computation_cache_traits_3_01_graph_t_00_01_c9dfa0a0794187fb4333531ff73e7d174}{serif\+::utils\+::dependencies\+::detail\+::\+Computation\+Cache\+Traits$<$ Graph\+T, Context\+T, Error\+T, true $>$}} \end{DoxyCompactItemize} \doxysubsubsection*{Namespaces} \begin{DoxyCompactItemize} \item namespace \mbox{\hyperlink{namespaceserif}{serif}} \item namespace \mbox{\hyperlink{namespaceserif_1_1utils}{serif\+::utils}} \item namespace \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies}{serif\+::utils\+::dependencies}} \item namespace \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_1_1detail}{serif\+::utils\+::dependencies\+::detail}} \end{DoxyCompactItemize} \doxysubsubsection*{Concepts} \begin{DoxyCompactItemize} \item concept \mbox{\hyperlink{conceptserif_1_1utils_1_1dependencies_1_1_can_prepare}{serif\+::utils\+::dependencies\+::\+Can\+Prepare}} \end{DoxyCompactItemize} \doxysubsubsection*{Typedefs} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename GraphT, typename ContextT$>$ }\\using \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_1_1detail_a3d45a3180ffa540f7b005be3b5f04e44}{serif\+::utils\+::dependencies\+::detail\+::\+Used\+Resources}} = \mbox{\hyperlink{namespaceserif_1_1utils_1_1misc_1_1concepts_a7f4d5acf6ecfec39214a93e40c82bbf7}{misc\+::concepts\+::\+FilterT}}$<$typename Context\+T\+::\+Resources, \mbox{\hyperlink{structserif_1_1utils_1_1dependencies_1_1detail_1_1_used_resource}{Used\+Resource}}$<$GraphT$>$\+::template Predicate$>$ \end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename GraphT, typename BindingsT, typename ErrorT, std\+::size\+\_\+t... Indices$>$ }\\consteval bool \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_1_1detail_a5f5579980c241c0a6559dfeefd87374b}{serif\+::utils\+::dependencies\+::detail\+::compatible\+\_\+errors}} (std\+::index\+\_\+sequence$<$ Indices... $>$) \begin{DoxyCompactList}\small\item\em Value-\/returning calculations can share a graph with expected results carrying its declared error or an exact union alternative. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Variables} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename Source, typename Target$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_1_1detail_ab08321dbdc238f2ef15597603b35eb47}{serif\+::utils\+::dependencies\+::detail\+::compatible\+\_\+error\+\_\+v}} = std\+::same\+\_\+as$<$Source, Target$>$ \begin{DoxyCompactList}\small\item\em Ordinary graph failures retain an exact type; numerical conversions must not erase diagnostics. \end{DoxyCompactList}\item {\footnotesize template$<$typename Source, typename... Alternatives$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_1_1detail_a1466386ea6e43c7f80bc21a6e1b64986}{serif\+::utils\+::dependencies\+::detail\+::compatible\+\_\+error\+\_\+v$<$ Source, std\+::variant$<$ Alternatives... $>$ $>$}} \begin{DoxyCompactList}\small\item\em Independent modules may explicitly aggregate their unchanged failures in an unambiguous tagged union. \end{DoxyCompactList}\end{DoxyCompactItemize}