Name Generator 4.2.1
Culture-aware name generation for C++23
Loading...
Searching...
No Matches
dasmig::name Class Reference

Return type for name generation, holding both individual parts and the full composed string. More...

#include <namegen.hpp>

Public Member Functions

std::uint64_t seed () const
 Retrieve the random seed used to generate this name.
 
const core::seed_signature & signature () const
 The seed and the data this name was generated from.
 
const std::vector< std::wstring > & parts () const
 Return the individual parts (names/surnames) as a vector.
 
name & append_name ()
 Append a forename to this name, preserving gender and culture.
 
name & append_name (culture c)
 Append a forename of a specific culture.
 
name & append_surname ()
 Append a surname to this name, preserving culture.
 
name & append_surname (culture c)
 Append a surname of a specific culture.
 
void to_json (core::json_writer &w) const
 Write this name as a JSON object {"name":…,"parts":[…],"gender":…,"culture":…,"signature":{…}}.
 
std::string to_json () const
 This name as a JSON document.
 
 operator std::wstring () const
 Implicit conversion to std::wstring.
 
 operator std::vector< std::wstring > () const
 Implicit conversion to a vector of name parts.
 

Friends

class ng
 
std::wostream & operator<< (std::wostream &wos, const name &n)
 Stream the name to a wide output stream.
 

Detailed Description

Return type for name generation, holding both individual parts and the full composed string.

Supports implicit conversion to std::wstring, streaming via operator<<, chained appending of names and surnames, and JSON output via to_json().

Definition at line 187 of file namegen.hpp.

Member Function Documentation

◆ append_name() [1/2]

name & dasmig::name::append_name ( )
inline

Append a forename to this name, preserving gender and culture.

The part is drawn from this name's seed and its position, so the same seed and the same appends give the same full name.

Returns
*this for chaining.
Exceptions
std::invalid_argumentIf no names are loaded for the culture and gender.

Definition at line 1181 of file namegen.hpp.

◆ append_name() [2/2]

name & dasmig::name::append_name ( culture  c)
inline

Append a forename of a specific culture.

Parameters
cCulture for the appended name.
Returns
*this for chaining.
Exceptions
std::invalid_argumentIf no names are loaded for c.

Definition at line 1187 of file namegen.hpp.

◆ append_surname() [1/2]

name & dasmig::name::append_surname ( )
inline

Append a surname to this name, preserving culture.

Returns
*this for chaining.
Exceptions
std::invalid_argumentIf no surnames are loaded for the culture.

Definition at line 1193 of file namegen.hpp.

◆ append_surname() [2/2]

name & dasmig::name::append_surname ( culture  c)
inline

Append a surname of a specific culture.

Parameters
cCulture for the appended surname.
Returns
*this for chaining.
Exceptions
std::invalid_argumentIf no surnames are loaded for c.

Definition at line 1199 of file namegen.hpp.

◆ operator std::vector< std::wstring >()

dasmig::name::operator std::vector< std::wstring > ( ) const
inline

Implicit conversion to a vector of name parts.

Definition at line 265 of file namegen.hpp.

◆ operator std::wstring()

dasmig::name::operator std::wstring ( ) const
inline

Implicit conversion to std::wstring.

Returns
The full composed name string.

Definition at line 259 of file namegen.hpp.

◆ parts()

const std::vector< std::wstring > & dasmig::name::parts ( ) const
inline

Return the individual parts (names/surnames) as a vector.

Returns
Vector of name parts.

Definition at line 208 of file namegen.hpp.

◆ seed()

std::uint64_t dasmig::name::seed ( ) const
inline

Retrieve the random seed used to generate this name.

Returns
The per-call seed for replay.
See also
ng::get_name(const name_request&, std::uint64_t)

Definition at line 193 of file namegen.hpp.

◆ signature()

const core::seed_signature & dasmig::name::signature ( ) const
inline

The seed and the data this name was generated from.

Returns
The replay signature; data is ng::data_hash() at the time of generation.

Definition at line 201 of file namegen.hpp.

◆ to_json() [1/2]

std::string dasmig::name::to_json ( ) const
inline

This name as a JSON document.

Returns
Compact JSON.

Definition at line 250 of file namegen.hpp.

◆ to_json() [2/2]

void dasmig::name::to_json ( core::json_writer &  w) const
inline

Write this name as a JSON object {"name":…,"parts":[…],"gender":…,"culture":…,"signature":{…}}.

gender is the gender of the forenames (for a surname, the one append_name() would use) and culture the culture of the first part.

Parameters
wWriter positioned where a value is allowed.

Definition at line 1205 of file namegen.hpp.

Friends And Related Symbol Documentation

◆ ng

friend class ng
friend

Definition at line 301 of file namegen.hpp.

◆ operator<<

std::wostream & operator<< ( std::wostream &  wos,
const name &  n 
)
friend

Stream the name to a wide output stream.

Parameters
wosOutput stream.
nName to stream.
Returns
Reference to the output stream.

Definition at line 274 of file namegen.hpp.


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