builder module¶
-
namespace
cauldron
¶ - template <class Object, class... Value>
-
class
Builder
¶ - #include <builder.h>
Strategy which generates
Object
instances with constructor arguments generated from corresponding strategies.- Note
Object
should have appropriate constructor so types and order of passed strategies agree with types and order of constructor parameters or compile-time error will arise.- Template Parameters
Object
: type of objects generated by strategy.
Inherits from cauldron::CloneHelper< Object, Builder< Object, Value... > >
Public Functions
-
Builder
(const cauldron::Strategy<Value>&... strategy)¶ - Parameters
strategy
: strategy to generate constructor arguments from.
-
Builder
(const Builder<Object, Value...> &builder)¶ Default copy constructor doesn’t fit since we’re using
std::unique_ptr
as class members which is not copyable.
-
Object
operator()
() const¶ Generates pseudo-random
Object
instance.
Private Functions
- template <std::size_t... Indices>
-
Object
produce
(const std::tuple<std::unique_ptr<cauldron::Strategy<Value>>...> &strategies, std::index_sequence<Indices...>) const¶ Helper function for unpacking
Builder::strategies_
tuple into variadicStrategy
instances.
-
Object
produce
(const std::unique_ptr<cauldron::Strategy<Value>>&... strategy) const¶ Helper function for producing values from variadic
Strategy
instances.
- template <std::size_t... Indices>
-
std::tuple<std::unique_ptr<cauldron::Strategy<Value>>...>
clone_strategies
(const std::tuple<std::unique_ptr<cauldron::Strategy<Value>>...> &strategies, std::index_sequence<Indices...>) const¶ Helper function for unpacking
Builder::strategies_
tuple into variadicStrategy
instances.