\doxysection{src/include/serif/utils/dependencies/dependency\+\_\+context.hpp File Reference} \hypertarget{dependency__context_8hpp}{}\label{dependency__context_8hpp}\index{src/include/serif/utils/dependencies/dependency\_context.hpp@{src/include/serif/utils/dependencies/dependency\_context.hpp}} {\ttfamily \#include $<$concepts$>$}\newline {\ttfamily \#include $<$tuple$>$}\newline {\ttfamily \#include $<$type\+\_\+traits$>$}\newline {\ttfamily \#include $<$utility$>$}\newline {\ttfamily \#include "{}serif/utils/dependencies/resource.\+hpp"{}}\newline {\ttfamily \#include "{}serif/utils/dependencies/detail/type\+\_\+lists.\+hpp"{}}\newline {\ttfamily \#include "{}serif/utils/misc/concepts/concat.\+hpp"{}}\newline Include dependency graph for dependency\+\_\+context.\+hpp\+: \nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{dependency__context_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]{dependency__context_8hpp__dep__incl} \end{center} \end{figure} \doxysubsubsection*{Classes} \begin{DoxyCompactItemize} \item class \mbox{\hyperlink{classserif_1_1utils_1_1dependencies_1_1_dependency_context}{serif\+::utils\+::dependencies\+::\+Dependency\+Context$<$ Resource\+Ts $>$}} \item class \mbox{\hyperlink{classserif_1_1utils_1_1dependencies_1_1_dependency_context_view_3_01_parent_t_00_01_key_list_3_01_key_ts_8_8_8_01_4_01_4}{serif\+::utils\+::dependencies\+::\+Dependency\+Context\+View$<$ Parent\+T, Key\+List$<$ Key\+Ts... $>$ $>$}} \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_is_dependency_context}{serif\+::utils\+::dependencies\+::\+Is\+Dependency\+Context}} \end{DoxyCompactItemize} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename... Resources$>$ \newline requires (Is\+Resource$<$Resources$>$ \&\& ...) \&\& \mbox{\hyperlink{namespaceserif_1_1utils_1_1misc_1_1traits_a8cb5b9ce5869ecf88101859ace70f92a}{misc\+::traits\+::all\+\_\+unique\+\_\+types\+\_\+v}}$<$typename std\+::remove\+\_\+cvref\+\_\+t$<$Resources$>$\+::\+Key...$>$}\\auto \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_ab0cfd959e8c00f5e1641f26798333972}{serif\+::utils\+::dependencies\+::make\+\_\+dependency\+\_\+context}} (Resources \&\&... resources) \begin{DoxyCompactList}\small\item\em Build a context whose schema follows directly from its resource keys and types. \end{DoxyCompactList}\item {\footnotesize template$<$typename... Resources$>$ }\\consteval bool \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_1_1detail_acf2dea9a3fc1ce9b322c7635ef79a193}{serif\+::utils\+::dependencies\+::detail\+::combinable\+\_\+resources}} (\mbox{\hyperlink{structserif_1_1utils_1_1types_1_1_type_list}{types\+::\+Type\+List}}$<$ Resources... $>$) \begin{DoxyCompactList}\small\item\em Combining contexts must preserve every resource, with exactly one owner of each key. \end{DoxyCompactList}\item {\footnotesize template$<$Is\+Dependency\+Context... Contexts$>$ \newline requires (\mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_1_1detail_acf2dea9a3fc1ce9b322c7635ef79a193}{detail\+::combinable\+\_\+resources}}(\mbox{\hyperlink{namespaceserif_1_1utils_1_1misc_1_1concepts_a0f84929456e6ed14cc6cbfb81215465a}{misc\+::concepts\+::\+ConcatT}}$<$typename Contexts\+::\+Resources...$>$\{\}))}\\auto \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_ae031216d69a09aa3921c363e36856e44}{serif\+::utils\+::dependencies\+::combine\+\_\+dependency\+\_\+contexts}} (const Contexts \&... contexts) \begin{DoxyCompactList}\small\item\em Copy disjoint resources and their tracking policies into one context; borrowed objects retain their original lifetime. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Variables} \begin{DoxyCompactItemize} \item {\footnotesize template$<$typename T$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_aa187a1c3b0db631f8752bebcf8a16af7}{serif\+::utils\+::dependencies\+::is\+\_\+dependency\+\_\+context\+\_\+v}} = false \item {\footnotesize template$<$typename... Resources$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_ab42cde4e64e4612056fbeaa5c383bc2d}{serif\+::utils\+::dependencies\+::is\+\_\+dependency\+\_\+context\+\_\+v$<$ Dependency\+Context$<$ Resources... $>$ $>$}} = true \item {\footnotesize template$<$typename ParentT, typename KeysT$>$ }\\constexpr bool \mbox{\hyperlink{namespaceserif_1_1utils_1_1dependencies_ae3cc546046ae8957136c778b9c8c0682}{serif\+::utils\+::dependencies\+::is\+\_\+dependency\+\_\+context\+\_\+v$<$ Dependency\+Context\+View$<$ Parent\+T, Keys\+T $>$ $>$}} = true \end{DoxyCompactItemize}