capydi
Loading...
Searching...
No Matches
capy::di::implementation_details_::AsInterface< Decoratee, Interface > Class Template Reference

#include <Interface.hpp>

Inheritance diagram for capy::di::implementation_details_::AsInterface< Decoratee, Interface >:
Collaboration diagram for capy::di::implementation_details_::AsInterface< Decoratee, Interface >:

Public Types

using CentralType = Interface
using ResolutionKeysPack
using DependenciesPack = dependencies_pack_t<Decoratee>

Public Member Functions

constexpr AsInterface (meta::Unit< Interface >, Decoratee &&decoratee)
auto do_resolve (meta::Pack< Interface > keys, auto &dependencies, meta::wrapped_with< ResolutionContext > auto &context, const auto &input) const
auto do_resolve (meta::Pack< const Interface > keys, auto &dependencies, meta::wrapped_with< ResolutionContext > auto &context, const auto &input) const
template<std::size_t DependencyIndex>
meta::wrapped_with< std::optional > auto get_dependencies_input () const
Public Member Functions inherited from capy::di::DecoratableConfig< AsInterface< Decoratee, Interface > >
auto with (Args &&... args) &&

Static Public Attributes

static constexpr ConfigType CONFIG_TYPE = ConfigType::CREATIONAL

Member Typedef Documentation

◆ CentralType

template<CreationalConfig Decoratee, typename Interface>
using capy::di::implementation_details_::AsInterface< Decoratee, Interface >::CentralType = Interface

◆ DependenciesPack

template<CreationalConfig Decoratee, typename Interface>
using capy::di::implementation_details_::AsInterface< Decoratee, Interface >::DependenciesPack = dependencies_pack_t<Decoratee>

◆ ResolutionKeysPack

template<CreationalConfig Decoratee, typename Interface>
using capy::di::implementation_details_::AsInterface< Decoratee, Interface >::ResolutionKeysPack
Initial value:
>
A compile-time heterogeneous type list.
Definition Pack.hpp:70

Constructor & Destructor Documentation

◆ AsInterface()

template<CreationalConfig Decoratee, typename Interface>
capy::di::implementation_details_::AsInterface< Decoratee, Interface >::AsInterface ( meta::Unit< Interface > ,
Decoratee && decoratee )
inlineexplicitconstexpr

Member Function Documentation

◆ do_resolve() [1/2]

template<CreationalConfig Decoratee, typename Interface>
auto capy::di::implementation_details_::AsInterface< Decoratee, Interface >::do_resolve ( meta::Pack< const Interface > keys,
auto & dependencies,
meta::wrapped_with< ResolutionContext > auto & context,
const auto & input ) const
inline

◆ do_resolve() [2/2]

template<CreationalConfig Decoratee, typename Interface>
auto capy::di::implementation_details_::AsInterface< Decoratee, Interface >::do_resolve ( meta::Pack< Interface > keys,
auto & dependencies,
meta::wrapped_with< ResolutionContext > auto & context,
const auto & input ) const
inline

◆ get_dependencies_input()

template<CreationalConfig Decoratee, typename Interface>
template<std::size_t DependencyIndex>
meta::wrapped_with< std::optional > auto capy::di::implementation_details_::AsInterface< Decoratee, Interface >::get_dependencies_input ( ) const
inline
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ CONFIG_TYPE

template<CreationalConfig Decoratee, typename Interface>
ConfigType capy::di::implementation_details_::AsInterface< Decoratee, Interface >::CONFIG_TYPE = ConfigType::CREATIONAL
staticconstexpr

The documentation for this class was generated from the following file: