Releases: LambBread/lipsum-cpp
Releases · LambBread/lipsum-cpp
0.5.0-dev.1
Version 0.5.0-dev.1
Changes
- Move most free function logic into
lpsm::Generator - New functions:
std::string lpsm::Generator::single_sentence(const lpsm::ArgVec2&, const lpsm::ArgVec2&); // private
std::string lpsm::Generator::single_paragraph(bool); // private
std::string lpsm::Generator::single_md_paragraph(bool, bool); // private
std::string lpsm::Generator::json_string(); // private
std::string lpsm::Generator::json_number(); // private
std::string lpsm::Generator::json_value(int, int);
char* lpsm_Generator_json_value(lpsm_GeneratorHandle, int, int);- Changed functions:
std::string lpsm::Generator::json(int, int, bool);
// from std::string lpsm::Generator::json(int, bool)
char* lpsm_Generator_json(lpsm_GeneratorHandle, int, int, bool);
// from std::string lpsm_Generator_json(lpsm_GeneratorHandle, int, bool)- Removed features:
std::string lpsm::GenerateWord(const lpsm::Source&);
std::string lpsm::GenerateSentenceFragment(const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateSentence(const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateParagraph(const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, bool, const lpsm::Source&);
std::string lpsm::GenerateText(const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&,
bool, const lpsm::Source&);
std::string lpsm::GenerateWords(int, const lpsm::Source&);
std::string lpsm::GenerateSentences(int, const lpsm::ArgVec2&, const lpsm::ArgVec2&, bool, const lpsm::Source&);
std::string lpsm::GenerateParagraphs(int, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, bool, const lpsm::Source&);
std::string lpsm::GeneratePlainURL(const lpsm::Source&);
std::string lpsm::GenerateURL(const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateSlug(const lpsm::ArgVec2&, char, const lpsm::Source&);
std::string lpsm::GenerateScramble(int, char, char);
std::string lpsm::GenerateMarkdownHeader(int, const lpsm::ArgVec2&, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownEmphasis(bool, const lpsm::ArgVec2&, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownLink(const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownList(bool, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownParagraph(const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&,
const lpsm::ArgVec2&, const lpsm::ArgVec2&, bool, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownParagraphs(int, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&,
const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, bool,
bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownText(const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&,
const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::ArgVec2&,
int, bool, const lpsm::Source&);
std::string lpsm::GenerateXMLDocument(int, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateJSONString(const lpsm::Source&);
std::string lpsm::GenerateJSONNumber();
std::string lpsm::GenerateJSONObject(int, int, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateJSONArray(int, int, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateJSONValue(int, int, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateSentenceFragmentX(int, int, const lpsm::Source&);
std::string lpsm::GenerateSentenceX(int, int, int, int, const lpsm::Source&);
std::string lpsm::GenerateParagraphX(int, int, int, int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateTextX(int, int, int, int, int, int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateSentencesX(int, int, int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateParagraphsX(int, int, int, int, int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateURLX(int, int, const lpsm::Source&);
std::string lpsm::GenerateSlugX(int, int, char, const lpsm::Source&);
std::string lpsm::GenerateMarkdownHeaderX(int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownEmphasisX(bool, int, int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownLinkX(int, int, int, int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateMarkdownListX(bool, int, int, int, int, int, int, bool, const lpsm::Source&);
std::string lpsm::GenerateXMLDocumentX(int, int, int, int, int, const lpsm::Source&);
std::string lpsm::GenerateJSONObjectX(int, int, int, int, const lpsm::Source&);
std::string lpsm::GenerateJSONArrayX(int, int, int, int, const lpsm::Source&);
std::string lpsm::GenerateJSONValueX(int, int, int, int, const lpsm::Source&);
char* lpsm_GenerateWord(lpsm_SourceHandle);
char* lpsm_GenerateSentenceFragment(int, int, lpsm_SourceHandle);
char* lpsm_GenerateSentence(int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateParagraph(int, int, int, int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GenerateText(int, int, int, int, int, int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GenerateWords(int, lpsm_SourceHandle);
char* lpsm_GenerateSentences(int, int, int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GenerateParagraphs(int, int, int, int, int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GeneratePlainURL(lpsm_SourceHandle);
char* lpsm_GenerateURL(int, int, lpsm_SourceHandle);
char* lpsm_GenerateSlug(int, int, char, lpsm_SourceHandle);
char* lpsm_GenerateMarkdownHeader(int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GenerateMarkdownEmphasis(bool, int, int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GenerateMarkdownLink(int, int, int, int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GenerateMarkdownList(bool, int, int, int, int, int, int, bool, lpsm_SourceHandle);
char* lpsm_GenerateXMLDocument(int, int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateJSONString(lpsm_SourceHandle);
char* lpsm_GenerateJSONNumber(void);
char* lpsm_GenerateJSONObject(int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateJSONArray(int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateJSONValue(int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateSentenceFragmentS(lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateSentenceS(lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateParagraphS(lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateTextS(lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateParagraphsS(int, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateSentencesS(int, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateMarkdownHeaderS(int, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateMarkdownEmphasisS(bool, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateMarkdownLinkS(lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateMarkdownListS(bool, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateMarkdownParagraphS(lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle,
lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateMarkdownParagraphsS(int, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle,
lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, bool, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateMarkdownTextS(lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle,
lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle,
int, bool, lpsm_SourceHandle, bool);
char* lpsm_GenerateXMLDocumentS(int, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateJSONObjectS(int, int, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateJSONArrayS(int, int, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateJSONValueS(int, int, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
int lpsm_ArgVec2_roll(lpsm_ArgVec2Handle);
int lpsm_ArgVec2_min(lpsm_ArgVec2Handle);
int lpsm_ArgVec2_max(lpsm_ArgVec2Handle);
typedef void* lpsm_SourceHandle;
lpsm_SourceHandle lpsm_Source(const char*);
void lpsm_SourceDestroy(lpsm_SourceHandle);- Removed examples:
GenerateWord.cpp
GenerateWords.cpp
GenerateSentenceFragment.cpp
GenerateSentence.cpp
GenerateSentences.cpp
GenerateParagraph.cpp
GenerateParagraphs.cpp
GenerateText.cpp
Formats.cpp
0.4.6
Version 0.4.6
Changes
- Add more descriptive error handling in CLI tool
- Add better help command in CLI tool
- Add CMake
find_package()support - Add unit tests and benchmarking
- Add Arch Linux package support
- Ensure no possibility of duplicate keys in JSON
- Make
lpsm::CountWords()"smarter" - Switch some functions in
lpsm::internalto C++20 concepts - Add XML attributes in generated XML
- Allow 1 or 0 elements in
lpsm::GenerateMarkdownText(), and warn on negative elements - Fix bugs:
std::bad_allocfromlpsm::GenerateSentenceFragment()when the number of words is <= 0- Segmentation fault in
lpsm::internal::RandomNumber()when min > max
- Add Doxygen docs to packages
- Add
CHANGELOG.md - New features:
inline constexpr const char* LIPSUM_CPP_VERSION_TIME;
inline constexpr bool LIPSUM_CPP_VERSION_ISDEV;
inline constexpr const char* LIPSUM_CPP_VERSION_DATE;
template <typename T> concept lpsm::internal::ToStringable;
template <typename T> concept lpsm::internal::Streamable;
template <typename T> concept lpsm::internal::IsInt;
template <typename T> concept lpsm::internal::UniformDistributionType;
template <typename T> T lpsm::internal::ToType(const std::string&);
std::string lpsm::Generator::md_header(int, bool);
std::string lpsm::Generator::md_emphasis(bool, bool);
std::string lpsm::Generator::md_link(bool);
std::string lpsm::Generator::md_list(bool, bool);
int lpsm::CountSentenceFragments(const std::string&);
int lpsm::CountParagraphs(const std::string&, int);
#define LIPSUM_CPP_VERSION_TIME_C;
#define LIPSUM_CPP_VERSION_ISDEV_C;
#define LIPSUM_CPP_VERSION_DATE_C;
char* lpsm_Generator_md_header(lpsm_GeneratorHandle, int, bool);
char* lpsm_Generator_md_emphasis(lpsm_GeneratorHandle, bool, bool);
char* lpsm_Generator_md_link(lpsm_GeneratorHandle, bool);
char* lpsm_Generator_md_list(lpsm_GeneratorHandle, bool, bool);
int lpsm_CountSentenceFragments(const char*);
int lpsm_CountParagraphs(const char*, int);- Changed functions:
template <UniformDistributionType T> std::string lpsm::internal::RandomNumber(T, T);
// from template <typename T> std::string lpsm::internal::RandomNumber(T, T)
char lpsm::internal::RandomNumber(char, char);
// from template <> char lpsm::internal::RandomNumber(char, char)
bool lpsm::internal::RandomNumber(bool, bool);
// from template <> bool lpsm::internal::RandomNumber(bool, bool)
template <Streamable T> std::string lpsm::internal::ToString(const T&);
template <ToStringable T> std::string lpsm::internal::ToString(const T&);
// from template <typename T> std::string lpsm::internal::ToString(const T&);
std::string lpsm::Generator::fragment();
// from std::string lpsm::Generator::sentence_fragment()
std::string lpsm::Generator::md_paragraph(int, bool, bool);
// from std::string lpsm::Generator::md_paragraph(int, bool);
std::string lpsm::Generator::md_text(int, bool);
// from std::string lpsm::Generator::md_text(int);
char* lpsm_Generator_fragment(lpsm_GeneratorHandle);
// from char* lpsm_Generator_sentence_fragment(lpsm_GeneratorHandle)
char* lpsm_Generator_md_paragraph(lpsm_GeneratorHandle, int, bool, bool);
// from char* lpsm_Generator_md_paragraph(lpsm_GeneratorHandle, int, bool)
char* lpsm_Generator_md_text(lpsm_GeneratorHandle, int, bool);
// from char* lpsm_Generator_md_text(lpsm_GeneratorHandle, int)- Removed functions:
std::string lpsm::Generator::html_paragraph(int, bool);
std::string lpsm::Generator::html_text(int);
char* lpsm_Generator_html_paragraph(lpsm_GeneratorHandle, int, bool);
char* lpsm_Generator_html_text(lpsm_GeneratorHandle, int);0.4.5
Version 0.4.5
Changes
lpsm::Generatorsettings split into new struct,lpsm::GeneratorSettings- New CLI tool,
lpsmcpp-cli - CPack packaging now includes
README.mds andLICENSE.md,WIXandRPMpackage generators - New features:
struct lpsm::GeneratorSettings;
void lpsm::GeneratorSettings::change_setting(const std::string&, const lpsm::ArgVec2&);
std::string lpsm::Generator::scramble(int, char, char);
std::string lpsm::Generator::slug(char);
std::string lpsm::Generator::url();
std::string lpsm::Generator::plain_url();
void lpsm::Generator::load_source(const std::string&);
void lpsm_Generator_change_setting(lpsm_GeneratorHandle, const char*, int, int);
char* lpsm_Generator_scramble(lpsm_GeneratorHandle, int, char, char);
char* lpsm_Generator_slug(lpsm_GeneratorHandle, char);
char* lpsm_Generator_url(lpsm_GeneratorHandle);
char* lpsm_Generator_plain_url(lpsm_GeneratorHandle);
void lpsm_Generator_load_source(lpsm_GeneratorHandle, const char*);
0.4.4
Version 0.4.4
Changes
- JSON and XML generation
- More documentation of
lpsm::internalfunctions - Customizable settings in
lpsm::Generator lpsm::Generatorexposed in C wrapper via opaque pointers- New features:
std::string lpsm::GenerateXMLDocument(int, const lpsm::ArgVec2&, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateJSONString(const lpsm::Source&);
std::string lpsm::GenerateJSONNumber();
std::string lpsm::GenerateJSONObject(int, int, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateJSONArray(int, int, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateJSONValue(int, int, const lpsm::ArgVec2&, const lpsm::Source&);
std::string lpsm::GenerateXMLDocumentX(int, int, int, int, int, const lpsm::Source&);
std::string lpsm::GenerateJSONObjectX(int, int, int, int, const lpsm::Source&);
std::string lpsm::GenerateJSONArrayX(int, int, int, int, const lpsm::Source&);
std::string lpsm::GenerateJSONValueX(int, int, int, int, const lpsm::Source&);
void lpsm::Generator::change_setting(const std::string&, const lpsm::ArgVec2&);
void lpsm::Generator::change_setting(const std::string&, int, int);
std::string lpsm::Generator::text(bool);
std::string lpsm::Generator::html_paragraph(int, bool);
std::string lpsm::Generator::html_text(int);
std::string lpsm::Generator::xml(int);
std::string lpsm::Generator::json(int, bool);
char* lpsm_GenerateXMLDocument(int, int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateJSONString(lpsm_SourceHandle);
char* lpsm_GenerateJSONNumber(void);
char* lpsm_GenerateJSONObject(int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateJSONArray(int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateJSONValue(int, int, int, int, lpsm_SourceHandle);
char* lpsm_GenerateXMLDocumentS(int, lpsm_ArgVec2Handle, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateJSONObjectS(int, int, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateJSONArrayS(int, int, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
char* lpsm_GenerateJSONValueS(int, int, lpsm_ArgVec2Handle, lpsm_SourceHandle, bool);
typedef void* lpsm_GeneratorHandle;
lpsm_GeneratorHandle lpsm_Generator(const char*);
void lpsm_GeneratorDestroy(lpsm_GeneratorHandle);
char* lpsm_Generator_word(lpsm_GeneratorHandle, int);
char* lpsm_Generator_sentence_fragment(lpsm_GeneratorHandle);
char* lpsm_Generator_sentence(lpsm_GeneratorHandle, int, bool);
char* lpsm_Generator_paragraph(lpsm_GeneratorHandle, int, bool);
char* lpsm_Generator_text(lpsm_GeneratorHandle, bool);
char* lpsm_Generator_md_paragraph(lpsm_GeneratorHandle, int, bool);
char* lpsm_Generator_md_text(lpsm_GeneratorHandle, int);
char* lpsm_Generator_html_paragraph(lpsm_GeneratorHandle, int, bool);
char* lpsm_Generator_html_text(lpsm_GeneratorHandle, int);
char* lpsm_Generator_xml(lpsm_GeneratorHandle, int);
char* lpsm_Generator_json(lpsm_GeneratorHandle, int, bool);- Removed features:
char* lpsm_gen_word(int);
char* lpsm_gen_sentence_fragment(void);
char* lpsm_gen_sentence(int, bool);
char* lpsm_gen_paragraph(int, bool);
char* lpsm_gen_md_paragraph(int, bool);
char* lpsm_gen_md_text(int);- Removed examples:
Basic.cpp -> Generator.cpp, GeneratorFormats.cpp
GenerateDefaultLipsumSentence.cpp
GenerateURL.cpp -> both to Misc.cpp
GenerateMarkdownEmphasis.cpp
GenerateMarkdownHeader.cpp
GenerateMarkdownList.cpp
GenerateMarkdownLink.cpp
GenerateMarkdownParagraph.cpp
GenerateMarkdownParagraphs.cpp
GenerateMarkdownText.cpp -> all to Markdown.cpp
- New examples:
Generator.cpp
GeneratorFormats.cpp
0.4.3
Version 0.4.3
Changes
make helpmake install, CMakeinstall(...)rules- CPack packaging
lpsm::internal::GenerateTLD()made less repetitive- More built in lorem-ipsum sources
cat- cat ipsumdog/doggo- dog ipsumcorpo/corporate- corporate ipsumdefault/lorem- traditional lorem ipsum
- CI/CD with GitHub Actions
- Better MSVC support
- New functions:
int lpsm::internal::WeightedRandomIdx(const std::vector<int>&);0.4.2
Version 0.4.2
Changes
- Some code has been made more structured
README.mds overhauled- Headers now use both
#pragma onceand traditional include-guards - More formal language
- Automatic version numbering using CMake
- Better logging
- Switch manual macros in
lipsum_h.cppto a variadic template - More consistent naming scheme (see
src/README.mdfor details) - Optimize
lpsm::internal::HandleHTMLEntity() clang-tidysupportCONTRIBUTING.mdadded- Use more modern C++
- Update
TODO.md - New features:
template<typename... Args> void lpsm::internal::LogWarn(const Args&...);
inline constexpr const char* LIPSUM_CPP_VERSION_COMMIT;
inline constexpr const char* LIPSUM_CPP_VERSION_FULL;
#define LIPSUM_CPP_VERSION_COMMIT_C
#define LIPSUM_CPP_VERSION_FULL_C- Renamed functions:
[[nodiscard]] int lpsm::ArgVec2::roll() const; //from int lpsm::ArgVec2::Roll() const
void lpsm::Source::load(const std::string&); //from void lpsm::Source::Load()
[[nodiscard]] std::string lpsm::Source::random_word() const; //from std::string lpsm::Source::RandomWord() const
int lpsm_ArgVec2_roll(lpsm_ArgVec2Handle); //from int lpsm_ArgVec2Roll(lpsm_ArgVec2Handle)
int lpsm_ArgVec2_min(lpsm_ArgVec2Handle); //from int lpsm_ArgVec2GetMin(lpsm_ArgVec2Handle)
int lpsm_ArgVec2_max(lpsm_ArgVec2Handle); //from int lpsm_ArgVec2GetMax(lpsm_ArgVec2Handle)0.4.1
Version 0.4.1
Changes
- Change folder structure
- Split C wrapper into multiple files
lpsm::Generatorcan now work with multi-source generation- More comments in CMake
- Update
README.md - New functions
lpsm::Generator::Generator(const std::string&);
void lpsm::Source::Load(const std::string&);0.4.0
Version 0.4.0
Changes
- Change style of
.inls to havingnamespace lipsumaround entire implementation - Make
lpsm::internal::RandomNumbermore thread-safe - Functions changed to support multi-source generation with new
lpsm::Sourceclass - Update TODO.md
- Version numbering changed to
constexprvariables, along with variables storing major, minor, and patch versions-
// #define LIPSUM_CPP_VERSION inline constexpr const char* LIPSUM_CPP_VERSION inline constexpr int LIPSUM_CPP_VERSION_MAJOR inline constexpr int LIPSUM_CPP_VERSION_MINOR inline constexpr int LIPSUM_CPP_VERSION_PATCH // C wrapper #define LIPSUM_CPP_VERSION_MAJOR_C #define LIPSUM_CPP_VERSION_MINOR_C #define LIPSUM_CPP_VERSION_PATCH_C
-
- Removed features:
std::string lpsm::LipsumVersion();
#define lpsm_LipsumVersion()- Added features:
class lpsm::Source;
lpsm::Source::Source();
lpsm::Source::Source(const std::string&);
std::string lpsm::Source::RandomWord() const;
// C wrapper
typedef void* lpsm_SourceHandle;
lpsm_SourceHandle lpsm_Source(const char*);
void lpsm_SourceDestroy(lpsm_SourceHandle);0.3.9
Version 0.3.9
Changes
lpsm::GenerateWordmore thread-safe- Switch non-standard GCC extension of including a file inside a function (used in
lpsm::GenerateWord) to standard C++ global inclusion - Switch
sample.inltostatic constexpr std::array<const char*, N>fromstatic std::vector<std::string> - Make
lpsm::internal::RandomNumbera template function - Switch some internal
lpsm::ArgVec2s tolpsm::internal::RandomNumber - Generated URLs now include
lpsmcpp-at beginning to avoid sending users to real URLs - New functions:
std::string lpsm::GeneratePlainURL();
std::string lpsm::GenerateScramble(int, char, char);
char* lpsm_GeneratePlainURL(void);
char* lpsm_GenerateScramble(int, char, char);