1#ifndef CAPYDI_ON_OBJECT_CREATED_HPP_
2#define CAPYDI_ON_OBJECT_CREATED_HPP_
21 typename RelatedEntity_,
27 OnObjectCreated<RelatedEntity_, Action, SIZE>
42 : di_action_ { std::move(action) }
52 if (!context.flags.just_created) [[unlikely]]
54 return std::expected<
decltype(decoratee),
Error> {
Error codes and diagnostics for dependency injection operations.
Compile-time type pack utilities and metaprogramming foundations.
Resolution concept and result type for dependency injection queries.
constexpr OnObjectCreated(meta::Unit< RelatedEntity_ >, DiAction< Action, SIZE > &&action)
Definition OnObjectCreated.hpp:38
static constexpr ConfigType CONFIG_TYPE
Definition OnObjectCreated.hpp:35
Resolution< RelatedEntity, Error > auto pipe(meta::Reference< RelatedEntity > auto decoratee, meta::wrapped_with< ResolutionContext > auto &context) const
Definition OnObjectCreated.hpp:47
meta::Pack< meta::Pack< RelatedEntity_ > > RelatedKeysPack
Definition OnObjectCreated.hpp:32
RelatedEntity_ RelatedEntity
Definition OnObjectCreated.hpp:31
Definition Resolution.hpp:30
Definition Decorator.hpp:19
auto execute_di_action(DiAction_ const &di_action, auto &context)
Definition DiAction.hpp:58
ConfigType
Categorization of configuration strategies in the DI container.
Definition ConfigType.hpp:24
@ CHAINABLE
Chainable configs form a pipeline of transformations applied after creation. Examples: proxies,...
Definition ConfigType.hpp:35
@ SIZE
Sentinel value for bounds checking and iteration.
Definition ConfigType.hpp:38
Error
Enumeration of possible errors during dependency injection resolution.
Definition Error.hpp:26
@ OBSERVER_ACTION_EXECUTION_FAILURE
Definition Error.hpp:47
@ OBSERVER_COULD_NOT_RESOLVE_TYPE
Definition Error.hpp:45
DiActionError
Definition DiAction.hpp:52
@ DI_ACTION_UNABLE_TO_RESOLVE_ARGS
Definition DiAction.hpp:53
@ DI_ACTION_EXECUTION_ERROR
Definition DiAction.hpp:54
Definition DecoratableConfig.hpp:22
Definition DiAction.hpp:21