![]() |
Entity Generator 4.2.0
Composable, deterministic entity generation for C++23
|
Component that picks uniformly at random from a list of values. More...
#include <entitygen.hpp>
Public Member Functions | |
| choice_component (std::wstring key, std::vector< T > choices, Formatter fmt={}) | |
| Construct a choice component. | |
| std::wstring | key () const override |
Unique key identifying this component (e.g. "name", "age"). | |
| std::any | generate (const generation_context &ctx) const override |
| Generate a random value for this component. | |
| std::wstring | to_string (const std::any &value) const override |
| Convert a generated value to a displayable string. | |
Public Member Functions inherited from dasmig::component | |
| component ()=default | |
| Default constructor. | |
| component (const component &)=default | |
| Copyable. | |
| component & | operator= (const component &)=default |
| Copyable. | |
| component (component &&) noexcept=default | |
| Movable. | |
| component & | operator= (component &&) noexcept=default |
| Movable. | |
| virtual | ~component ()=default |
| Virtual destructor for proper cleanup of derived classes. | |
| virtual json_value | to_json (const std::any &value) const |
| Convert a generated value to JSON, for entity::to_json(). | |
| virtual std::wstring | label () const |
| Display name of this component, used by entity::to_string(). | |
| virtual std::vector< std::wstring > | depends_on () const |
| Keys of the components this one reads from the context. | |
| virtual std::uint64_t | data_hash () const |
| Hash of the data this component draws from, for replay. | |
| virtual double | weight () const |
| Inclusion weight for this component (0.0 to 1.0). | |
| virtual bool | validate (const std::any &value) const |
| Validate a generated value. | |
| virtual bool | should_generate (const generation_context &ctx) const |
| Decide whether this component should be generated. | |
Additional Inherited Members | |
Static Protected Member Functions inherited from dasmig::component | |
| static std::wstring | default_to_string (const std::any &value) |
| Default conversion covering common standard types. | |
| static json_value | default_to_json (const std::any &value, const std::wstring &display) |
| Default JSON conversion used by to_json(). | |
Component that picks uniformly at random from a list of values.
| T | The value type. |
| Formatter | Optional callable for custom string conversion. |
Definition at line 535 of file entitygen.hpp.
|
inlineexplicit |
Construct a choice component.
| key | Unique component key. |
| choices | Non-empty list of values to choose from. |
| fmt | Optional custom formatter. |
| std::invalid_argument | If choices is empty. |
Definition at line 543 of file entitygen.hpp.
|
inlineoverridevirtual |
Generate a random value for this component.
| ctx | Context providing access to previously generated values and a seeded random engine. |
std::any. Implements dasmig::component.
Definition at line 554 of file entitygen.hpp.
|
inlineoverridevirtual |
Unique key identifying this component (e.g. "name", "age").
Implements dasmig::component.
Definition at line 552 of file entitygen.hpp.
|
inlineoverridevirtual |
Convert a generated value to a displayable string.
| value | The value previously returned by generate(). |
Implements dasmig::component.
Definition at line 560 of file entitygen.hpp.