Faker C++
Loading...
Searching...
No Matches
string.h
Go to the documentation of this file.
1#pragma once
2
3#include <algorithm>
4#include <array>
5#include <chrono>
6#include <cstdint>
7#include <cstring>
8#include <ctime>
9#include <iomanip>
10#include <limits>
11#include <map>
12#include <optional>
13#include <random>
14#include <set>
15#include <sstream>
16#include <string>
17#include <string_view>
18
19#include "faker-cxx/export.h"
20#include "random_generator.h"
21
23{
24enum class StringCasing
25{
29};
30
31struct FAKER_CXX_EXPORT CharCount
32{
33 unsigned int atLeastCount{(std::numeric_limits<unsigned>::min)()};
34 unsigned int atMostCount{(std::numeric_limits<unsigned>::max)()};
35};
36
37using GuaranteeMap = std::map<char, CharCount>;
38
55FAKER_CXX_EXPORT bool isValidGuarantee(GuaranteeMap& guarantee, std::set<char>& targetCharacters, unsigned length);
56
69FAKER_CXX_EXPORT std::string generateAtLeastString(const GuaranteeMap& guarantee);
70
80FAKER_CXX_EXPORT std::string uuidV1();
81
91FAKER_CXX_EXPORT std::string uuidV3();
92
102FAKER_CXX_EXPORT std::string uuidV4();
103
113FAKER_CXX_EXPORT std::string uuidV5(const std::string& input,
114 const std::string& namespaceUuid = "dbedb1fb-a628-49f3-9e4d-58166108df5f");
115
125FAKER_CXX_EXPORT std::string uuidV6();
126
136FAKER_CXX_EXPORT std::string uuidV7();
137
150FAKER_CXX_EXPORT std::string ulid(time_t refDate = std::time(nullptr));
151
164FAKER_CXX_EXPORT std::string sample(unsigned length = 10);
165
179FAKER_CXX_EXPORT std::string sample(GuaranteeMap&& guarantee, unsigned length = 10);
180
194FAKER_CXX_EXPORT std::string symbol(unsigned minLength = 1, unsigned maxLength = 10);
195
209FAKER_CXX_EXPORT std::string fromCharacters(const std::string& characters, unsigned length = 1);
210
225FAKER_CXX_EXPORT std::string fromCharacters(GuaranteeMap&& guarantee, const std::string& characters,
226 unsigned length = 1);
227
243FAKER_CXX_EXPORT std::string alpha(unsigned length = 1, StringCasing casing = StringCasing::Mixed,
244 const std::string& excludeCharacters = "");
245
261FAKER_CXX_EXPORT std::string alpha(GuaranteeMap&& guarantee, unsigned length = 1,
263
280FAKER_CXX_EXPORT std::string alphanumeric(unsigned length = 1, StringCasing casing = StringCasing::Mixed,
281 const std::string& excludeCharacters = "");
282
298FAKER_CXX_EXPORT std::string alphanumeric(GuaranteeMap&& guarantee, unsigned length = 1,
300
315FAKER_CXX_EXPORT std::string numeric(unsigned length = 1, bool allowLeadingZeros = true);
316
332FAKER_CXX_EXPORT std::string numeric(GuaranteeMap&& guarantee, unsigned length = 1, bool allowLeadingZeros = true);
333
349FAKER_CXX_EXPORT std::string nanoId(int length);
350
364FAKER_CXX_EXPORT std::string nanoId();
365
383FAKER_CXX_EXPORT std::string nanoId(int minLength, int maxLength);
384}
Definition string.h:23
FAKER_CXX_EXPORT std::string nanoId()
Generates a unique, URL-safe string identifier of default length.
FAKER_CXX_EXPORT std::string uuidV3()
Generates an Universally Unique Identifier version 3.
FAKER_CXX_EXPORT std::string uuidV7()
Generates an Universally Unique Identifier version 7.
FAKER_CXX_EXPORT std::string symbol(unsigned minLength=1, unsigned maxLength=10)
Returns a string containing "~`!@#$%^&*()_-+={[}]|:;\"'<,>.?/".
FAKER_CXX_EXPORT std::string sample(unsigned length=10)
Returns a string containing UTF-16 chars between 33 and 125 (`!` to `}`).
FAKER_CXX_EXPORT std::string uuidV5(const std::string &input, const std::string &namespaceUuid="dbedb1fb-a628-49f3-9e4d-58166108df5f")
Generates an Universally Unique Identifier version 5.
FAKER_CXX_EXPORT std::string uuidV4()
Generates an Universally Unique Identifier version 4.
StringCasing
Definition string.h:25
@ Upper
Definition string.h:28
@ Mixed
Definition string.h:26
@ Lower
Definition string.h:27
FAKER_CXX_EXPORT std::string generateAtLeastString(const GuaranteeMap &guarantee)
Generates the least required string for a given guarantee map.
FAKER_CXX_EXPORT std::string ulid(time_t refDate=std::time(nullptr))
Generates an Universally Unique Lexicographically Sortable Identifier.
FAKER_CXX_EXPORT std::string numeric(unsigned length=1, bool allowLeadingZeros=true)
Generates a given length string of digits.
FAKER_CXX_EXPORT std::string alphanumeric(unsigned length=1, StringCasing casing=StringCasing::Mixed, const std::string &excludeCharacters="")
Generates a string consisting of alpha characters and digits.
FAKER_CXX_EXPORT std::string uuidV6()
Generates an Universally Unique Identifier version 6.
FAKER_CXX_EXPORT bool isValidGuarantee(GuaranteeMap &guarantee, std::set< char > &targetCharacters, unsigned length)
Checks if the given guarantee map is valid for given targetCharacters and length.
FAKER_CXX_EXPORT std::string alpha(unsigned length=1, StringCasing casing=StringCasing::Mixed, const std::string &excludeCharacters="")
Generates a string consisting of letters in the English alphabet.
FAKER_CXX_EXPORT std::string fromCharacters(const std::string &characters, unsigned length=1)
Generates a string consisting of given characters.
FAKER_CXX_EXPORT std::string uuidV1()
Generates an Universally Unique Identifier version 1.
std::map< char, CharCount > GuaranteeMap
Definition string.h:37
Definition string.h:32
unsigned int atLeastCount
Definition string.h:33
unsigned int atMostCount
Definition string.h:34