From aedaf8df74a84e127455404d5162a10235e525e4 Mon Sep 17 00:00:00 2001 From: cieslarmichal Date: Fri, 29 Nov 2024 19:37:26 +0000 Subject: [PATCH] deploy: dbc3898e05fc6954e1a27cb6e33b6b867f6c2f28 --- doxygen_crawl.html | 2 + faker_8h__incl.map | 64 +++++----- faker_8h__incl.md5 | 2 +- namespacefaker_1_1string.html | 38 +++++- namespacefaker_1_1string.js | 1 + namespacemembers_func_u.html | 1 + namespacemembers_u.html | 1 + navtreedata.js | 6 +- navtreeindex3.js | 6 +- navtreeindex4.js | 4 +- navtreeindex5.js | 8 +- navtreeindex6.js | 2 + search/all_14.js | 29 ++--- search/functions_12.js | 13 +- string_8h.html | 39 +++--- string_8h.js | 1 + string_8h__incl.map | 34 ++--- string_8h__incl.md5 | 2 +- string_8h__incl.png | Bin 23667 -> 29665 bytes string_8h_source.html | 229 ++++++++++++++++++---------------- 20 files changed, 273 insertions(+), 209 deletions(-) diff --git a/doxygen_crawl.html b/doxygen_crawl.html index 50b0a9dc4..f59500286 100644 --- a/doxygen_crawl.html +++ b/doxygen_crawl.html @@ -1193,6 +1193,7 @@ + @@ -1615,6 +1616,7 @@ + diff --git a/faker_8h__incl.map b/faker_8h__incl.map index a2ab0f7ec..45f0bfcbe 100644 --- a/faker_8h__incl.map +++ b/faker_8h__incl.map @@ -64,18 +64,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + @@ -188,24 +188,24 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + diff --git a/faker_8h__incl.md5 b/faker_8h__incl.md5 index bb72ced19..4f60ae36a 100644 --- a/faker_8h__incl.md5 +++ b/faker_8h__incl.md5 @@ -1 +1 @@ -776233bbb0a60de6a50fcffe3aae54ea \ No newline at end of file +eb2dda08bcd8de7467f7abee575cdd30 \ No newline at end of file diff --git a/namespacefaker_1_1string.html b/namespacefaker_1_1string.html index 94436ffb0..21fe9c9f7 100644 --- a/namespacefaker_1_1string.html +++ b/namespacefaker_1_1string.html @@ -138,6 +138,9 @@ std::string uuid (RandomGenerator< T > gen=RandomGenerator< std::mt19937 >{})  Generates an Universally Unique Identifier with version 4.
  +FAKER_CXX_EXPORT std::string ulid (time_t refDate=std::time(nullptr)) + Generates an Universally Unique Lexicographically Sortable Identifier.
+  FAKER_CXX_EXPORT std::string sample (unsigned length=10)  Returns a string containing UTF-16 chars between 33 and 125 (`!` to `}`).
  @@ -306,7 +309,7 @@

faker::string::alpha(5, StringCasing::Upper) // "DTCIC"
faker::string::alpha(4, StringCasing::Lower) // "brpt"
-
StringCasing
Definition string.h:16
+
StringCasing
Definition string.h:18
Definition airline.h:9
@@ -491,7 +494,7 @@

GuaranteeMap guarantee { {'0',{3,10}},{'a',{6,8}} }; // "000aaaaaa"
FAKER_CXX_EXPORT std::string generateAtLeastString(const GuaranteeMap &guarantee)
Generates the least required string for a given guarantee map.
-
std::map< char, CharCount > GuaranteeMap
Definition string.h:31
+
std::map< char, CharCount > GuaranteeMap
Definition string.h:33
@@ -793,6 +796,35 @@

+

◆ ulid()

+ +
+
+ + + + + + + +
FAKER_CXX_EXPORT std::string faker::string::ulid (time_t refDate = std::time(nullptr))
+
+ +

Generates an Universally Unique Lexicographically Sortable Identifier.

+
Parameters
+ + +
refDateA reference date (type time_t)
+
+
+
Returns
ULID UINT128.
+
faker::string::ulid() // "0001C7STHC0G2081040G208104"
+
faker::string::ulid(1484581420) // "0001C7STHC0G2081040G208104"
+
FAKER_CXX_EXPORT std::string ulid(time_t refDate=std::time(nullptr))
Generates an Universally Unique Lexicographically Sortable Identifier.
+
+
+

◆ uuid()

@@ -819,7 +851,7 @@

Returns
UUID v4.
faker::string::uuid() // "27666229-cedb-4a45-8018-98b1e1d921e2"
-
std::string uuid(RandomGenerator< T > gen=RandomGenerator< std::mt19937 >{})
Generates an Universally Unique Identifier with version 4.
Definition string.h:77
+
std::string uuid(RandomGenerator< T > gen=RandomGenerator< std::mt19937 >{})
Generates an Universally Unique Identifier with version 4.
Definition string.h:79
diff --git a/namespacefaker_1_1string.js b/namespacefaker_1_1string.js index 18b372d4e..1d8e3fcd7 100644 --- a/namespacefaker_1_1string.js +++ b/namespacefaker_1_1string.js @@ -23,5 +23,6 @@ var namespacefaker_1_1string = [ "sample", "namespacefaker_1_1string.html#a6613ccca522a49631ed49c7d93c32e85", null ], [ "sample", "namespacefaker_1_1string.html#a34013d255a8eaf4c2afab2090c15cb8d", null ], [ "symbol", "namespacefaker_1_1string.html#a329b6a478487c87eadb19b1f78292264", null ], + [ "ulid", "namespacefaker_1_1string.html#a612819af12ce056ff6f32dda7a9a1865", null ], [ "uuid", "namespacefaker_1_1string.html#a335d7aad191429aa88bed20818881d95", null ] ]; \ No newline at end of file diff --git a/namespacemembers_func_u.html b/namespacemembers_func_u.html index 6fa9a322a..14641bc26 100644 --- a/namespacemembers_func_u.html +++ b/namespacemembers_func_u.html @@ -102,6 +102,7 @@
Here is a list of all namespace functions with links to the namespace documentation for each function:

- u -

    +
  • ulid() : faker::string
  • unit() : faker::science
  • url() : faker::internet
  • urlLoremFlickr() : faker::image
  • diff --git a/namespacemembers_u.html b/namespacemembers_u.html index 38d8c6002..54efd65fc 100644 --- a/namespacemembers_u.html +++ b/namespacemembers_u.html @@ -102,6 +102,7 @@
    Here is a list of all namespace members with links to the namespace documentation for each member:

    - u -

      +
    • ulid() : faker::string
    • unit() : faker::science
    • url() : faker::internet
    • urlLoremFlickr() : faker::image
    • diff --git a/navtreedata.js b/navtreedata.js index 0bcef324f..3f1272429 100644 --- a/navtreedata.js +++ b/navtreedata.js @@ -56,9 +56,9 @@ var NAVTREEINDEX = "image_8h.html#a708ded43a228db789612399cbd2efcae", "namespacefaker_1_1esport.html#a2adceb90d4e67604f06c50e532c00c60", "namespacefaker_1_1phone.html#af67e35b39f2987b4ed513541c7425a0aa2dc47f81fc4257e14c4d0fcd90d03b9a", -"namespacefaker_1_1system.html#aeeae0c993bee26944d1d31ad6c339a08", -"phone_8h.html#af67e35b39f2987b4ed513541c7425a0aa7176f8c3bccfdf02322c73f7a0bc9688", -"structfaker_1_1system_1_1CronOptions.html#a514e32dcad2eb509387bc05493ec34b8" +"namespacefaker_1_1system.html#ad4309983f04c3100cca8fc8e45968e3b", +"phone_8h.html#af67e35b39f2987b4ed513541c7425a0aa70965feb0441ff7fc1982fc5c509136e", +"structfaker_1_1system_1_1CronOptions.html" ]; var SYNCONMSG = 'click to disable panel synchronisation'; diff --git a/navtreeindex3.js b/navtreeindex3.js index aa7ef759d..ffbab6faa 100644 --- a/navtreeindex3.js +++ b/navtreeindex3.js @@ -220,7 +220,7 @@ var NAVTREEINDEX3 = "namespacefaker_1_1string.html#a0f34587fb525159e53e01829edbe81cd":[0,0,0,30,5], "namespacefaker_1_1string.html#a271ae1a89baf97693b8181f7e88975db":[0,0,0,30,3], "namespacefaker_1_1string.html#a329b6a478487c87eadb19b1f78292264":[0,0,0,30,18], -"namespacefaker_1_1string.html#a335d7aad191429aa88bed20818881d95":[0,0,0,30,19], +"namespacefaker_1_1string.html#a335d7aad191429aa88bed20818881d95":[0,0,0,30,20], "namespacefaker_1_1string.html#a34013d255a8eaf4c2afab2090c15cb8d":[0,0,0,30,17], "namespacefaker_1_1string.html#a5b7a1d4a3ebb389e224c7bfc534d7cda":[0,0,0,30,2], "namespacefaker_1_1string.html#a5b7a1d4a3ebb389e224c7bfc534d7cdaa19de5b94f7b83900d4b296d9fa491aec":[0,0,0,30,2,2], @@ -228,6 +228,7 @@ var NAVTREEINDEX3 = "namespacefaker_1_1string.html#a5b7a1d4a3ebb389e224c7bfc534d7cdaab75fcdd2d72d9e000beab48622402d93":[0,0,0,30,2,1], "namespacefaker_1_1string.html#a5f7f456ce960ac5d9407c805144b3943":[0,0,0,30,9], "namespacefaker_1_1string.html#a609843a4fde8ddb1d6304b25916858e6":[0,0,0,30,8], +"namespacefaker_1_1string.html#a612819af12ce056ff6f32dda7a9a1865":[0,0,0,30,19], "namespacefaker_1_1string.html#a646c3109166518bfa5bcf5c2f5de98ef":[0,0,0,30,15], "namespacefaker_1_1string.html#a6613ccca522a49631ed49c7d93c32e85":[0,0,0,30,16], "namespacefaker_1_1string.html#a66f88f14a90528cdf5683a55a9d4a280":[0,0,0,30,6], @@ -248,6 +249,5 @@ var NAVTREEINDEX3 = "namespacefaker_1_1system.html#a9f65bb388e66bc8cb04e07ecf5a8e4e9":[0,0,0,31,12], "namespacefaker_1_1system.html#a9f8f6e022652e96f1bfa55dff4c8082a":[0,0,0,31,5], "namespacefaker_1_1system.html#aa7006eb2917cbeaf645afd4d9dc1c5bb":[0,0,0,31,10], -"namespacefaker_1_1system.html#ad28ecf10cae675e76cbf0232611c700b":[0,0,0,31,11], -"namespacefaker_1_1system.html#ad4309983f04c3100cca8fc8e45968e3b":[0,0,0,31,7] +"namespacefaker_1_1system.html#ad28ecf10cae675e76cbf0232611c700b":[0,0,0,31,11] }; diff --git a/navtreeindex4.js b/navtreeindex4.js index a20da0a40..379499733 100644 --- a/navtreeindex4.js +++ b/navtreeindex4.js @@ -1,5 +1,6 @@ var NAVTREEINDEX4 = { +"namespacefaker_1_1system.html#ad4309983f04c3100cca8fc8e45968e3b":[0,0,0,31,7], "namespacefaker_1_1system.html#aeeae0c993bee26944d1d31ad6c339a08":[0,0,0,31,2], "namespacefaker_1_1system.html#aeeae0c993bee26944d1d31ad6c339a08a34e2d1989a1dbf75cd631596133ee5ee":[0,0,0,31,2,4], "namespacefaker_1_1system.html#aeeae0c993bee26944d1d31ad6c339a08a9dffbf69ffba8bc38bc4e01abf4b1675":[0,0,0,31,2,3], @@ -248,6 +249,5 @@ var NAVTREEINDEX4 = "phone_8h.html#af67e35b39f2987b4ed513541c7425a0aa6ddecd8ccd9f648d19dc02c7a566cb4f":[3,0,0,0,27,0,17], "phone_8h.html#af67e35b39f2987b4ed513541c7425a0aa6e9767f4f15357401b148b9a8ced14ef":[3,0,0,0,27,0,1], "phone_8h.html#af67e35b39f2987b4ed513541c7425a0aa6ea1e24d60afddf388b06f8243c45b70":[3,0,0,0,27,0,105], -"phone_8h.html#af67e35b39f2987b4ed513541c7425a0aa6f781c6559a0c605da918096bdb69edf":[3,0,0,0,27,0,68], -"phone_8h.html#af67e35b39f2987b4ed513541c7425a0aa70965feb0441ff7fc1982fc5c509136e":[3,0,0,0,27,0,119] +"phone_8h.html#af67e35b39f2987b4ed513541c7425a0aa6f781c6559a0c605da918096bdb69edf":[3,0,0,0,27,0,68] }; diff --git a/navtreeindex5.js b/navtreeindex5.js index 651512ce4..4d65cb035 100644 --- a/navtreeindex5.js +++ b/navtreeindex5.js @@ -1,5 +1,6 @@ var NAVTREEINDEX5 = { +"phone_8h.html#af67e35b39f2987b4ed513541c7425a0aa70965feb0441ff7fc1982fc5c509136e":[3,0,0,0,27,0,119], "phone_8h.html#af67e35b39f2987b4ed513541c7425a0aa7176f8c3bccfdf02322c73f7a0bc9688":[3,0,0,0,27,0,15], "phone_8h.html#af67e35b39f2987b4ed513541c7425a0aa724bf4ca11a567636547a92a37e397b7":[3,0,0,0,27,0,227], "phone_8h.html#af67e35b39f2987b4ed513541c7425a0aa73101738da81e5cbb87b64cd400a4405":[3,0,0,0,27,0,158], @@ -152,7 +153,7 @@ var NAVTREEINDEX5 = "string_8h.html#a0f34587fb525159e53e01829edbe81cd":[3,0,0,0,32,5], "string_8h.html#a271ae1a89baf97693b8181f7e88975db":[3,0,0,0,32,3], "string_8h.html#a329b6a478487c87eadb19b1f78292264":[3,0,0,0,32,18], -"string_8h.html#a335d7aad191429aa88bed20818881d95":[3,0,0,0,32,19], +"string_8h.html#a335d7aad191429aa88bed20818881d95":[3,0,0,0,32,20], "string_8h.html#a34013d255a8eaf4c2afab2090c15cb8d":[3,0,0,0,32,17], "string_8h.html#a5b7a1d4a3ebb389e224c7bfc534d7cda":[3,0,0,0,32,2], "string_8h.html#a5b7a1d4a3ebb389e224c7bfc534d7cdaa19de5b94f7b83900d4b296d9fa491aec":[3,0,0,0,32,2,2], @@ -160,6 +161,7 @@ var NAVTREEINDEX5 = "string_8h.html#a5b7a1d4a3ebb389e224c7bfc534d7cdaab75fcdd2d72d9e000beab48622402d93":[3,0,0,0,32,2,1], "string_8h.html#a5f7f456ce960ac5d9407c805144b3943":[3,0,0,0,32,9], "string_8h.html#a609843a4fde8ddb1d6304b25916858e6":[3,0,0,0,32,8], +"string_8h.html#a612819af12ce056ff6f32dda7a9a1865":[3,0,0,0,32,19], "string_8h.html#a646c3109166518bfa5bcf5c2f5de98ef":[3,0,0,0,32,15], "string_8h.html#a6613ccca522a49631ed49c7d93c32e85":[3,0,0,0,32,16], "string_8h.html#a66f88f14a90528cdf5683a55a9d4a280":[3,0,0,0,32,6], @@ -247,7 +249,5 @@ var NAVTREEINDEX5 = "structfaker_1_1string_1_1CharCount.html#a465bc786f3be8c39efdb7134468a5b21":[2,0,0,6,0,0], "structfaker_1_1string_1_1CharCount.html#a78467d29318e0b0979a518e263e2ad2a":[0,0,0,30,0,1], "structfaker_1_1string_1_1CharCount.html#a78467d29318e0b0979a518e263e2ad2a":[2,0,0,6,0,1], -"structfaker_1_1system_1_1CronOptions.html":[0,0,0,31,0], -"structfaker_1_1system_1_1CronOptions.html":[2,0,0,7,0], -"structfaker_1_1system_1_1CronOptions.html#a514e32dcad2eb509387bc05493ec34b8":[0,0,0,31,0,0] +"structfaker_1_1system_1_1CronOptions.html":[0,0,0,31,0] }; diff --git a/navtreeindex6.js b/navtreeindex6.js index a5c3a3853..6cae63166 100644 --- a/navtreeindex6.js +++ b/navtreeindex6.js @@ -1,5 +1,7 @@ var NAVTREEINDEX6 = { +"structfaker_1_1system_1_1CronOptions.html":[2,0,0,7,0], +"structfaker_1_1system_1_1CronOptions.html#a514e32dcad2eb509387bc05493ec34b8":[0,0,0,31,0,0], "structfaker_1_1system_1_1CronOptions.html#a514e32dcad2eb509387bc05493ec34b8":[2,0,0,7,0,0], "structfaker_1_1system_1_1CronOptions.html#acd8a7339d985faa4187d339916e84d32":[0,0,0,31,0,1], "structfaker_1_1system_1_1CronOptions.html#acd8a7339d985faa4187d339916e84d32":[2,0,0,7,0,1], diff --git a/search/all_14.js b/search/all_14.js index 51e725ad6..ac1e6048e 100644 --- a/search/all_14.js +++ b/search/all_14.js @@ -3,18 +3,19 @@ var searchData= ['uganda_0',['Uganda',['../namespacefaker_1_1phone.html#af67e35b39f2987b4ed513541c7425a0aa53b3c88ea00c4f0e137b4e6fe7bd23f1',1,'faker::phone']]], ['uk_1',['UK',['../namespacefaker_1_1phone.html#af67e35b39f2987b4ed513541c7425a0aa76423d8352c9e8fc8d7d65f62c55eae9',1,'faker::phone']]], ['ukraine_2',['Ukraine',['../namespacefaker_1_1phone.html#af67e35b39f2987b4ed513541c7425a0aaf01fc92b23faa973f3492a23d5a705c5',1,'faker::phone']]], - ['unit_3',['Unit',['../structfaker_1_1science_1_1Unit.html',1,'faker::science']]], - ['unit_4',['unit',['../namespacefaker_1_1science.html#af5ca292f992a9807b390a4a61c35eeeb',1,'faker::science']]], - ['unitedarabemirates_5',['UnitedArabEmirates',['../namespacefaker_1_1phone.html#af67e35b39f2987b4ed513541c7425a0aa5d6d937400f06a3ce7dda81bcb3417c1',1,'faker::phone']]], - ['upper_6',['Upper',['../namespacefaker_1_1string.html#a5b7a1d4a3ebb389e224c7bfc534d7cdaa19de5b94f7b83900d4b296d9fa491aec',1,'faker::string']]], - ['upperletters_7',['upperLetters',['../structfaker_1_1internet_1_1PasswordOptions.html#aa1e31f94a3e817ac955e34f38a4ae74d',1,'faker::internet::PasswordOptions']]], - ['url_8',['url',['../namespacefaker_1_1internet.html#a005caa05149d90b3854aef6a4ccdf27e',1,'faker::internet']]], - ['urlloremflickr_9',['urlLoremFlickr',['../namespacefaker_1_1image.html#a083c329ebe18f42ae81a4bb0ac0732bb',1,'faker::image']]], - ['urlpicsumphotos_10',['urlPicsumPhotos',['../namespacefaker_1_1image.html#ab6bf3d60b988ed78eb6dd0419efe83bf',1,'faker::image']]], - ['uruguay_11',['Uruguay',['../namespacefaker_1_1phone.html#af67e35b39f2987b4ed513541c7425a0aa75497a22409db78dcc52c291e078bc10',1,'faker::phone']]], - ['usa_12',['Usa',['../namespacefaker_1_1phone.html#af67e35b39f2987b4ed513541c7425a0aa867f8282a36dd6525c3d40744a92fcf8',1,'faker::phone']]], - ['usedtomeasure_13',['usedToMeasure',['../structfaker_1_1science_1_1Unit.html#afbafb00ae0b488072359290f455e6d6e',1,'faker::science::Unit']]], - ['username_14',['username',['../namespacefaker_1_1internet.html#aaf73c938f7c6cf8f8ecbbeb0636b67c3',1,'faker::internet']]], - ['uuid_15',['uuid',['../namespacefaker_1_1string.html#a335d7aad191429aa88bed20818881d95',1,'faker::string']]], - ['uzbekistan_16',['Uzbekistan',['../namespacefaker_1_1phone.html#af67e35b39f2987b4ed513541c7425a0aaa0a3e881895e46eb96218f0988d405b9',1,'faker::phone']]] + ['ulid_3',['ulid',['../namespacefaker_1_1string.html#a612819af12ce056ff6f32dda7a9a1865',1,'faker::string']]], + ['unit_4',['Unit',['../structfaker_1_1science_1_1Unit.html',1,'faker::science']]], + ['unit_5',['unit',['../namespacefaker_1_1science.html#af5ca292f992a9807b390a4a61c35eeeb',1,'faker::science']]], + ['unitedarabemirates_6',['UnitedArabEmirates',['../namespacefaker_1_1phone.html#af67e35b39f2987b4ed513541c7425a0aa5d6d937400f06a3ce7dda81bcb3417c1',1,'faker::phone']]], + ['upper_7',['Upper',['../namespacefaker_1_1string.html#a5b7a1d4a3ebb389e224c7bfc534d7cdaa19de5b94f7b83900d4b296d9fa491aec',1,'faker::string']]], + ['upperletters_8',['upperLetters',['../structfaker_1_1internet_1_1PasswordOptions.html#aa1e31f94a3e817ac955e34f38a4ae74d',1,'faker::internet::PasswordOptions']]], + ['url_9',['url',['../namespacefaker_1_1internet.html#a005caa05149d90b3854aef6a4ccdf27e',1,'faker::internet']]], + ['urlloremflickr_10',['urlLoremFlickr',['../namespacefaker_1_1image.html#a083c329ebe18f42ae81a4bb0ac0732bb',1,'faker::image']]], + ['urlpicsumphotos_11',['urlPicsumPhotos',['../namespacefaker_1_1image.html#ab6bf3d60b988ed78eb6dd0419efe83bf',1,'faker::image']]], + ['uruguay_12',['Uruguay',['../namespacefaker_1_1phone.html#af67e35b39f2987b4ed513541c7425a0aa75497a22409db78dcc52c291e078bc10',1,'faker::phone']]], + ['usa_13',['Usa',['../namespacefaker_1_1phone.html#af67e35b39f2987b4ed513541c7425a0aa867f8282a36dd6525c3d40744a92fcf8',1,'faker::phone']]], + ['usedtomeasure_14',['usedToMeasure',['../structfaker_1_1science_1_1Unit.html#afbafb00ae0b488072359290f455e6d6e',1,'faker::science::Unit']]], + ['username_15',['username',['../namespacefaker_1_1internet.html#aaf73c938f7c6cf8f8ecbbeb0636b67c3',1,'faker::internet']]], + ['uuid_16',['uuid',['../namespacefaker_1_1string.html#a335d7aad191429aa88bed20818881d95',1,'faker::string']]], + ['uzbekistan_17',['Uzbekistan',['../namespacefaker_1_1phone.html#af67e35b39f2987b4ed513541c7425a0aaa0a3e881895e46eb96218f0988d405b9',1,'faker::phone']]] ]; diff --git a/search/functions_12.js b/search/functions_12.js index 9d7dffd9e..974445679 100644 --- a/search/functions_12.js +++ b/search/functions_12.js @@ -1,9 +1,10 @@ var searchData= [ - ['unit_0',['unit',['../namespacefaker_1_1science.html#af5ca292f992a9807b390a4a61c35eeeb',1,'faker::science']]], - ['url_1',['url',['../namespacefaker_1_1internet.html#a005caa05149d90b3854aef6a4ccdf27e',1,'faker::internet']]], - ['urlloremflickr_2',['urlLoremFlickr',['../namespacefaker_1_1image.html#a083c329ebe18f42ae81a4bb0ac0732bb',1,'faker::image']]], - ['urlpicsumphotos_3',['urlPicsumPhotos',['../namespacefaker_1_1image.html#ab6bf3d60b988ed78eb6dd0419efe83bf',1,'faker::image']]], - ['username_4',['username',['../namespacefaker_1_1internet.html#aaf73c938f7c6cf8f8ecbbeb0636b67c3',1,'faker::internet']]], - ['uuid_5',['uuid',['../namespacefaker_1_1string.html#a335d7aad191429aa88bed20818881d95',1,'faker::string']]] + ['ulid_0',['ulid',['../namespacefaker_1_1string.html#a612819af12ce056ff6f32dda7a9a1865',1,'faker::string']]], + ['unit_1',['unit',['../namespacefaker_1_1science.html#af5ca292f992a9807b390a4a61c35eeeb',1,'faker::science']]], + ['url_2',['url',['../namespacefaker_1_1internet.html#a005caa05149d90b3854aef6a4ccdf27e',1,'faker::internet']]], + ['urlloremflickr_3',['urlLoremFlickr',['../namespacefaker_1_1image.html#a083c329ebe18f42ae81a4bb0ac0732bb',1,'faker::image']]], + ['urlpicsumphotos_4',['urlPicsumPhotos',['../namespacefaker_1_1image.html#ab6bf3d60b988ed78eb6dd0419efe83bf',1,'faker::image']]], + ['username_5',['username',['../namespacefaker_1_1internet.html#aaf73c938f7c6cf8f8ecbbeb0636b67c3',1,'faker::internet']]], + ['uuid_6',['uuid',['../namespacefaker_1_1string.html#a335d7aad191429aa88bed20818881d95',1,'faker::string']]] ]; diff --git a/string_8h.html b/string_8h.html index f8eac9ea8..1366326a5 100644 --- a/string_8h.html +++ b/string_8h.html @@ -114,33 +114,39 @@ #include <random>
      #include <set>
      #include <string>
      +#include <time.h>
      #include "faker-cxx/export.h"
      +#include "helpers/ulid/ulid.h"
      #include "random_generator.h"
      Include dependency graph for string.h:
      - + - + - + - - - + + + - + - - - - - - - - + + + + + + + + + + + +
      @@ -193,6 +199,9 @@ std::string faker::string::uuid (RandomGenerator< T > gen=RandomGenerator< std::mt19937 >{})  Generates an Universally Unique Identifier with version 4.
        +FAKER_CXX_EXPORT std::string faker::string::ulid (time_t refDate=std::time(nullptr)) + Generates an Universally Unique Lexicographically Sortable Identifier.
      +  FAKER_CXX_EXPORT std::string faker::string::sample (unsigned length=10)  Returns a string containing UTF-16 chars between 33 and 125 (`!` to `}`).
        diff --git a/string_8h.js b/string_8h.js index aa6c171b3..198dfb430 100644 --- a/string_8h.js +++ b/string_8h.js @@ -23,5 +23,6 @@ var string_8h = [ "sample", "string_8h.html#a6613ccca522a49631ed49c7d93c32e85", null ], [ "sample", "string_8h.html#a34013d255a8eaf4c2afab2090c15cb8d", null ], [ "symbol", "string_8h.html#a329b6a478487c87eadb19b1f78292264", null ], + [ "ulid", "string_8h.html#a612819af12ce056ff6f32dda7a9a1865", null ], [ "uuid", "string_8h.html#a335d7aad191429aa88bed20818881d95", null ] ]; \ No newline at end of file diff --git a/string_8h__incl.map b/string_8h__incl.map index b78a82ebd..da6384ed2 100644 --- a/string_8h__incl.map +++ b/string_8h__incl.map @@ -1,22 +1,26 @@ - + - + - + - - - + + + - + - - - - - - - - + + + + + + + + + + + + diff --git a/string_8h__incl.md5 b/string_8h__incl.md5 index ac1985293..8bd366ac3 100644 --- a/string_8h__incl.md5 +++ b/string_8h__incl.md5 @@ -1 +1 @@ -5e67ffd8166429fe6c0772532be6f571 \ No newline at end of file +26bc5c54fc25fdb54f549a347dfab521 \ No newline at end of file diff --git a/string_8h__incl.png b/string_8h__incl.png index 2963fbe9ee4fba178fce68a5ba28a1e40d7d715a..6384835b461ff73777ec0e616642a2504b54a4b7 100644 GIT binary patch literal 29665 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 WWuVa-HQd>WcUNBZb}`x{;Qs(SZL}@` literal 23667 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 6#include <random>
      7#include <set>
      8#include <string>
      -
      9
      -
      10#include "faker-cxx/export.h"
      -
      11#include "random_generator.h"
      -
      12
      -
      - -
      14{
      -
      -
      15enum class StringCasing
      +
      9#include <time.h>
      +
      10
      +
      11#include "faker-cxx/export.h"
      +
      12#include "helpers/ulid/ulid.h"
      +
      13#include "random_generator.h"
      +
      14
      +
      +
      16{
      -
      17 Mixed,
      -
      18 Lower,
      -
      19 Upper
      -
      20};
      +
      +
      17enum class StringCasing
      +
      18{
      +
      19 Mixed,
      +
      20 Lower,
      +
      21 Upper
      +
      22};
      -
      21
      -
      -
      22struct FAKER_CXX_EXPORT CharCount
      -
      23{
      -
      24 unsigned int atLeastCount{(std::numeric_limits<unsigned>::min)()};
      -
      25 unsigned int atMostCount{(std::numeric_limits<unsigned>::max)()};
      -
      26};
      +
      23
      +
      +
      24struct FAKER_CXX_EXPORT CharCount
      +
      25{
      +
      26 unsigned int atLeastCount{(std::numeric_limits<unsigned>::min)()};
      +
      27 unsigned int atMostCount{(std::numeric_limits<unsigned>::max)()};
      +
      28};
      -
      27
      -
      31using GuaranteeMap = std::map<char, CharCount>;
      -
      32
      -
      49FAKER_CXX_EXPORT bool isValidGuarantee(GuaranteeMap& guarantee, std::set<char>& targetCharacters, unsigned length);
      -
      50
      -
      63FAKER_CXX_EXPORT std::string generateAtLeastString(const GuaranteeMap& guarantee);
      -
      64
      -
      76template <typename T = std::mt19937>
      -
      - -
      78{
      -
      79 static std::uniform_int_distribution<> dist(0, 15);
      -
      80 static std::uniform_int_distribution<> dist2(8, 11);
      -
      81 static std::string_view hexCharacters{"0123456789abcdef"};
      -
      82
      -
      83 std::string result;
      -
      84 result.reserve(36);
      -
      85
      -
      86 for (int i = 0; i < 8; i++)
      -
      87 {
      -
      88 result.append(1, hexCharacters[static_cast<size_t>(gen(dist))]);
      -
      89 }
      -
      90 result.append(1, '-');
      -
      91
      -
      92 for (int i = 0; i < 4; i++)
      -
      93 {
      -
      94 result.append(1, hexCharacters[static_cast<size_t>(gen(dist))]);
      -
      95 }
      -
      96 result.append(1, '-');
      -
      97
      -
      98 result.append(1, '4');
      -
      99 for (int i = 0; i < 3; i++)
      -
      100 {
      -
      101 result.append(1, hexCharacters[static_cast<size_t>(gen(dist))]);
      -
      102 }
      -
      103 result.append(1, '-');
      -
      104
      -
      105 result.append(1, hexCharacters[static_cast<size_t>(gen(dist2))]);
      +
      29
      +
      33using GuaranteeMap = std::map<char, CharCount>;
      +
      34
      +
      51FAKER_CXX_EXPORT bool isValidGuarantee(GuaranteeMap& guarantee, std::set<char>& targetCharacters, unsigned length);
      +
      52
      +
      65FAKER_CXX_EXPORT std::string generateAtLeastString(const GuaranteeMap& guarantee);
      +
      66
      +
      78template <typename T = std::mt19937>
      +
      + +
      80{
      +
      81 static std::uniform_int_distribution<> dist(0, 15);
      +
      82 static std::uniform_int_distribution<> dist2(8, 11);
      +
      83 static std::string_view hexCharacters{"0123456789abcdef"};
      +
      84
      +
      85 std::string result;
      +
      86 result.reserve(36);
      +
      87
      +
      88 for (int i = 0; i < 8; i++)
      +
      89 {
      +
      90 result.append(1, hexCharacters[static_cast<size_t>(gen(dist))]);
      +
      91 }
      +
      92 result.append(1, '-');
      +
      93
      +
      94 for (int i = 0; i < 4; i++)
      +
      95 {
      +
      96 result.append(1, hexCharacters[static_cast<size_t>(gen(dist))]);
      +
      97 }
      +
      98 result.append(1, '-');
      +
      99
      +
      100 result.append(1, '4');
      +
      101 for (int i = 0; i < 3; i++)
      +
      102 {
      +
      103 result.append(1, hexCharacters[static_cast<size_t>(gen(dist))]);
      +
      104 }
      +
      105 result.append(1, '-');
      106
      -
      107 for (int i = 0; i < 3; i++)
      -
      108 {
      -
      109 result.append(1, hexCharacters[static_cast<size_t>(gen(dist))]);
      -
      110 }
      -
      111 result.append(1, '-');
      -
      112
      -
      113 for (int i = 0; i < 12; i++)
      -
      114 {
      -
      115 result.append(1, hexCharacters[static_cast<size_t>(gen(dist))]);
      -
      116 }
      -
      117
      -
      118 return result;
      -
      119}
      +
      107 result.append(1, hexCharacters[static_cast<size_t>(gen(dist2))]);
      +
      108
      +
      109 for (int i = 0; i < 3; i++)
      +
      110 {
      +
      111 result.append(1, hexCharacters[static_cast<size_t>(gen(dist))]);
      +
      112 }
      +
      113 result.append(1, '-');
      +
      114
      +
      115 for (int i = 0; i < 12; i++)
      +
      116 {
      +
      117 result.append(1, hexCharacters[static_cast<size_t>(gen(dist))]);
      +
      118 }
      +
      119
      +
      120 return result;
      +
      121}
      -
      120
      -
      133FAKER_CXX_EXPORT std::string sample(unsigned length = 10);
      -
      134
      -
      148FAKER_CXX_EXPORT std::string sample(GuaranteeMap&& guarantee, unsigned length = 10);
      -
      149
      -
      163FAKER_CXX_EXPORT std::string symbol(unsigned minLength = 1, unsigned maxLength = 10);
      -
      164
      -
      178FAKER_CXX_EXPORT std::string fromCharacters(const std::string& characters, unsigned length = 1);
      -
      179
      -
      194FAKER_CXX_EXPORT std::string fromCharacters(GuaranteeMap&& guarantee, const std::string& characters,
      -
      195 unsigned length = 1);
      -
      196
      -
      212FAKER_CXX_EXPORT std::string alpha(unsigned length = 1, StringCasing casing = StringCasing::Mixed,
      -
      213 const std::string& excludeCharacters = "");
      -
      214
      -
      230FAKER_CXX_EXPORT std::string alpha(GuaranteeMap&& guarantee, unsigned length = 1,
      - -
      232
      -
      249FAKER_CXX_EXPORT std::string alphanumeric(unsigned length = 1, StringCasing casing = StringCasing::Mixed,
      -
      250 const std::string& excludeCharacters = "");
      -
      251
      -
      267FAKER_CXX_EXPORT std::string alphanumeric(GuaranteeMap&& guarantee, unsigned length = 1,
      - -
      269
      -
      284FAKER_CXX_EXPORT std::string numeric(unsigned length = 1, bool allowLeadingZeros = true);
      -
      285
      -
      301FAKER_CXX_EXPORT std::string numeric(GuaranteeMap&& guarantee, unsigned length = 1, bool allowLeadingZeros = true);
      -
      302
      -
      318FAKER_CXX_EXPORT std::string nanoId(int length);
      -
      319
      -
      333FAKER_CXX_EXPORT std::string nanoId();
      -
      334
      -
      352FAKER_CXX_EXPORT std::string nanoId(int minLength, int maxLength);
      -
      353}
      +
      122
      +
      123#ifdef __SIZEOF_INT128__
      +
      124#define ULIDUINT128
      +
      125#endif
      +
      126
      +
      139FAKER_CXX_EXPORT std::string ulid(time_t refDate = std::time(nullptr)); // Based on https://github.com/suyash/ulid
      +
      140
      +
      153FAKER_CXX_EXPORT std::string sample(unsigned length = 10);
      +
      154
      +
      168FAKER_CXX_EXPORT std::string sample(GuaranteeMap&& guarantee, unsigned length = 10);
      +
      169
      +
      183FAKER_CXX_EXPORT std::string symbol(unsigned minLength = 1, unsigned maxLength = 10);
      +
      184
      +
      198FAKER_CXX_EXPORT std::string fromCharacters(const std::string& characters, unsigned length = 1);
      +
      199
      +
      214FAKER_CXX_EXPORT std::string fromCharacters(GuaranteeMap&& guarantee, const std::string& characters,
      +
      215 unsigned length = 1);
      +
      216
      +
      232FAKER_CXX_EXPORT std::string alpha(unsigned length = 1, StringCasing casing = StringCasing::Mixed,
      +
      233 const std::string& excludeCharacters = "");
      +
      234
      +
      250FAKER_CXX_EXPORT std::string alpha(GuaranteeMap&& guarantee, unsigned length = 1,
      + +
      252
      +
      269FAKER_CXX_EXPORT std::string alphanumeric(unsigned length = 1, StringCasing casing = StringCasing::Mixed,
      +
      270 const std::string& excludeCharacters = "");
      +
      271
      +
      287FAKER_CXX_EXPORT std::string alphanumeric(GuaranteeMap&& guarantee, unsigned length = 1,
      + +
      289
      +
      304FAKER_CXX_EXPORT std::string numeric(unsigned length = 1, bool allowLeadingZeros = true);
      +
      305
      +
      321FAKER_CXX_EXPORT std::string numeric(GuaranteeMap&& guarantee, unsigned length = 1, bool allowLeadingZeros = true);
      +
      322
      +
      338FAKER_CXX_EXPORT std::string nanoId(int length);
      +
      339
      +
      353FAKER_CXX_EXPORT std::string nanoId();
      +
      354
      +
      372FAKER_CXX_EXPORT std::string nanoId(int minLength, int maxLength);
      +
      373}
      Definition random_generator.h:12
      -
      Definition string.h:14
      +
      Definition string.h:16
      FAKER_CXX_EXPORT std::string nanoId()
      Generates a unique, URL-safe string identifier of default length.
      FAKER_CXX_EXPORT std::string symbol(unsigned minLength=1, unsigned maxLength=10)
      Returns a string containing "~`!@#$%^&*()_-+={[}]|:;\"'<,>.?/".
      -
      std::string uuid(RandomGenerator< T > gen=RandomGenerator< std::mt19937 >{})
      Generates an Universally Unique Identifier with version 4.
      Definition string.h:77
      +
      std::string uuid(RandomGenerator< T > gen=RandomGenerator< std::mt19937 >{})
      Generates an Universally Unique Identifier with version 4.
      Definition string.h:79
      FAKER_CXX_EXPORT std::string sample(unsigned length=10)
      Returns a string containing UTF-16 chars between 33 and 125 (`!` to `}`).
      -
      StringCasing
      Definition string.h:16
      +
      StringCasing
      Definition string.h:18
      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 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.
      -
      std::map< char, CharCount > GuaranteeMap
      Definition string.h:31
      +
      std::map< char, CharCount > GuaranteeMap
      Definition string.h:33
      -
      Definition string.h:23
      +
      Definition string.h:25