|
| struct | AppendBinding |
| |
| struct | AppendBinding< Bindings< BindingsTs... >, BindingT > |
| |
| struct | AppendKeys |
| |
| struct | AppendKeys< ResultT, FirstT, Rest... > |
| |
| struct | AppendUnique |
| |
| struct | AppendUnique< KeyList< Keys... >, T > |
| |
| struct | BindingLookup |
| |
| struct | BindingLookup< Bindings< BindingTs... > > |
| | Share one compile-time lookup structure across all keys in a binding collection. More...
|
| |
| struct | BorrowedValue |
| |
| struct | BoundType |
| |
| struct | CachedResult |
| |
| struct | ComputationCacheStorage |
| |
| struct | ComputationCacheStorage< GraphT, BindingsT, types::TypeList< Resources... >, std::index_sequence< Indices... > > |
| |
| struct | ComputationCacheTraits |
| |
| struct | ComputationCacheTraits< GraphT, ContextT, ErrorT, true > |
| |
| struct | ComputationGraphSchema |
| |
| struct | ComputationGraphSchema< GraphT, ContextT, true > |
| |
| struct | Graph |
| | Immutable topology of computed nodes; context sources are resolved separately. More...
|
| |
| struct | HasBinding |
| |
| struct | HasBinding< Bindings< BindingTs... >, KeyT > |
| |
| struct | Invocation |
| | Ill-formed calls fail the graph concept instead of producing a hard instantiation error. More...
|
| |
| struct | Invocation< ComputationT, types::TypeList< Arguments... >, std::void_t< InvocationResult< ComputationT, Arguments... > > > |
| |
| struct | KeyListSize |
| |
| struct | KeyListSize< KeyList< Keys... > > |
| |
| struct | MergeKeyLists |
| |
| struct | MergeKeyLists< ResultT, KeyList< Keys... >, Rest... > |
| |
| class | NodeObservation |
| | Each started hook owns one invocation state and finishes once, including on exceptional exit. More...
|
| |
| struct | OwnedValue |
| |
| struct | ResolveComputation |
| | Missing inputs stop resolution before instantiating the callable or its result type. More...
|
| |
| struct | ResolveComputation< ComputationT, BindingsT, true > |
| |
| struct | ResolveGraph |
| | Walk execution positions, appending each result type to the available input bindings. More...
|
| |
| struct | ResolveGraph< GraphT, BindingsT, Position, false > |
| |
| struct | ResolveGraph< GraphT, BindingsT, Position, true > |
| |
| struct | ResolveStep |
| | An invalid callable must not instantiate the remaining graph or access a missing Value type. More...
|
| |
| struct | ResolveStep< GraphT, BindingsT, Position, ComputationT, true > |
| |
| struct | ResourceKeys |
| |
| struct | ResourceKeys< types::TypeList< Resources... > > |
| |
| struct | Result |
| | Computations publish owned, movable values, either directly or through std::expected. More...
|
| |
| struct | Result< std::expected< ValueT, ErrorT > > |
| |
| struct | SourceSnapshot |
| |
| struct | UsedResource |
| |
| struct | ValidObservers |
| |
| struct | ValidObservers< Observers< Registrations... >, GraphT, ContextT, true > |
| |
|
| template<typename... Resources> |
| consteval bool | combinable_resources (types::TypeList< Resources... >) |
| | Combining contexts must preserve every resource, with exactly one owner of each key.
|
| |
| template<typename GraphT, typename BindingsT, typename ErrorT, std::size_t... Indices> |
| consteval bool | 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.
|
| |
| template<typename BindingsT, typename... Keys> |
| consteval bool | independent_results (KeyList< Keys... >) |
| | A key has exactly one producer: either the context or a computation.
|
| |
| template<typename KeyT, typename... Types> |
| consteval std::size_t | type_index (types::TypeList< Types... >) |
| | Locate a type without requiring the types themselves to be constructible.
|
| |
| template<typename KeyT, typename BeforeT, typename AfterT> |
| decltype(auto) | begin_node (NodeObserver< KeyT, BeforeT, AfterT > &observer) |
| | Preserve the existing nullary callback contract for individually selected nodes.
|
| |
| template<typename KeyT, typename BeforeT, typename AfterT> |
| decltype(auto) | begin_node (AllNodesObserver< BeforeT, AfterT > &observer) |
| | Bind the identity once so generic registrations use the same exception-safe invocation scope.
|
| |
| template<typename InputT, typename ConsumerT, typename ObserverT, typename ValueT> |
| void | observe_input (ObserverT &, const ValueT &) |
| | Unrelated registrations do not observe this edge.
|
| |
| template<typename InputT, typename ConsumerT, typename FunctionT, typename ValueT> |
| void | observe_input (EdgeObserver< InputT, ConsumerT, FunctionT > &observer, const ValueT &value) |
| | Edge observers read the numerical value even when its consumer receives an owning handle.
|
| |
| template<typename GraphT, typename BindingsT, typename KeyT, typename BeforeT, typename AfterT> |
| consteval bool | valid_observer (NodeObserver< KeyT, BeforeT, AfterT > *) |
| | Nodes are identified by result keys, including constant computations without inputs.
|
| |
| template<typename BeforeT, typename AfterT, typename... Keys> |
| consteval bool | valid_all_nodes (KeyList< Keys... >) |
| | Use a bounded array scan rather than a graph-sized fold expression at the compiler's nesting limit.
|
| |
| template<typename GraphT, typename BindingsT, typename BeforeT, typename AfterT> |
| consteval bool | valid_observer (AllNodesObserver< BeforeT, AfterT > *) |
| | A generic callback must accept every node, including constant computations without inputs.
|
| |
| template<typename GraphT, typename BindingsT, typename InputT, typename ConsumerT, typename FunctionT> |
| consteval bool | valid_observer (EdgeObserver< InputT, ConsumerT, FunctionT > *) |
| | Use declared inputs to include source edges as well as computed prerequisites.
|
| |
|
| template<typename... Types> |
| constexpr bool | valid_binding_types_v |
| | Validate each binding without an implicit constraint fold proportional to the collection size.
|
| |
| template<typename ComputationT, typename ResultKeysT> |
| constexpr bool | valid_input_ownership_v |
| | Owning nodes can retain computed inputs; context resources remain borrowed.
|
| |
| template<typename Source, typename Target> |
| constexpr bool | 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 | compatible_error_v< Source, std::variant< Alternatives... > > |
| | Independent modules may explicitly aggregate their unchanged failures in an unambiguous tagged union.
|
| |
| template<typename KeyT, typename KeysT> |
| constexpr bool | contains_key_v = false |
| |
| template<typename KeyT, typename... Keys> |
| constexpr bool | contains_key_v< KeyT, KeyList< Keys... > > = type_index<KeyT>(types::TypeList<Keys...>{}) < sizeof...(Keys) |
| |
| template<typename RequiredT, typename AvailableT> |
| constexpr bool | key_list_subset_v = false |
| |
| template<typename... Keys, typename AvailableT> |
| constexpr bool | key_list_subset_v< KeyList< Keys... >, AvailableT > |
| |
| template<typename T> |
| constexpr bool | is_observer_v = false |
| |
| template<typename KeyT, typename BeforeT, typename AfterT> |
| constexpr bool | is_observer_v< NodeObserver< KeyT, BeforeT, AfterT > > = true |
| |
| template<typename BeforeT, typename AfterT> |
| constexpr bool | is_observer_v< AllNodesObserver< BeforeT, AfterT > > = true |
| |
| template<typename InputT, typename ConsumerT, typename FunctionT> |
| constexpr bool | is_observer_v< EdgeObserver< InputT, ConsumerT, FunctionT > > = true |
| |
| template<typename ObserverT, typename KeyT> |
| constexpr bool | observes_node_v = false |
| |
| template<typename KeyT, typename BeforeT, typename AfterT> |
| constexpr bool | observes_node_v< NodeObserver< KeyT, BeforeT, AfterT >, KeyT > = true |
| |
| template<typename BeforeT, typename AfterT, typename KeyT> |
| constexpr bool | observes_node_v< AllNodesObserver< BeforeT, AfterT >, KeyT > = true |
| |
| template<typename TimePoint> |
| constexpr bool | node_time_point_v = false |
| |
| template<typename Clock, typename Duration> |
| constexpr bool | node_time_point_v< std::chrono::time_point< Clock, Duration > > = std::is_arithmetic_v<typename Duration::rep> |
| |