102 lines
3.2 KiB
C++
102 lines
3.2 KiB
C++
#include <list>
|
|
#include <print>
|
|
|
|
#include <snipplib/utils/snplib_keyvalue_expr.h>
|
|
#include <snipplib/utils/snplib_string.h>
|
|
|
|
using namespace snplib;
|
|
int main()
|
|
{
|
|
std::string si = " dewf wek e lwekjflkj ";
|
|
std::println("s = '{}'", si);
|
|
|
|
auto s = snplib_trim_spaces(si);
|
|
|
|
std::println("s = '{}'", s);
|
|
|
|
auto sv = snplib_trim_spaces_as_view(si, TrimType::TRIM_LEFT);
|
|
|
|
std::println("sv(TrimType::TRIM_LEFT) = '{}'", sv);
|
|
|
|
sv = snplib_trim_spaces_as_view(si, TrimType::TRIM_RIGHT);
|
|
|
|
std::println("sv(TrimType::TRIM_RIGHT) = '{}'", sv);
|
|
|
|
sv = snplib_trim_spaces_as_view(si, TrimType::TRIM_BOTH);
|
|
|
|
std::println("sv(TrimType::TRIM_BOTH) = '{}'", sv);
|
|
|
|
const char cstr[] = " dwelkj 3827 dwjh 2398 ";
|
|
std::println("C-ish string: '{}'", cstr);
|
|
std::println("C-ish(TrimType::TRIM_BOTH) = '{}'", snplib_trim_spaces_as_view(cstr));
|
|
|
|
std::list ll{' ', ' ', '2', ' ', 'e', '4', 's', ' ', ' '};
|
|
std::println("std::list: {}", ll);
|
|
std::println("std::ranges::subrange(TrimType::TRIM_BOTH) = '{}'", snplib_trim_spaces_as_view(ll));
|
|
// std::println("std::ranges::subrange(TrimType::TRIM_BOTH) = '{}'",
|
|
// std::views::all(snplib_trim_spaces_as_view(ll)));
|
|
|
|
si = "123; we; d34534; ";
|
|
|
|
std::vector<std::string_view> rv;
|
|
rv = snplib_split_char_range<decltype(rv)>(si, "; ");
|
|
|
|
std::println("\n\nstr = '{}'", si);
|
|
|
|
std::print("all elems: ");
|
|
for (auto& el : rv) {
|
|
std::print("'{}' ", el);
|
|
}
|
|
std::println("");
|
|
|
|
rv = snplib_split_char_range<decltype(rv)>(si, "; ", 1, 2);
|
|
std::print("2 elems starting from 1: ");
|
|
for (auto& el : rv) {
|
|
std::print("'{}' ", el);
|
|
}
|
|
std::println("");
|
|
|
|
|
|
si = " ATTR AAA 1.1 23 45 09 ";
|
|
std::vector v{std::from_range, si};
|
|
ll = {std::from_range, si};
|
|
|
|
snplib_keyvalue_expr_t kv{v};
|
|
|
|
std::println("\n\nKV = {}", v);
|
|
std::println("key = '{}'", kv.key());
|
|
std::println("value = '{}'", kv.value());
|
|
std::println("valueSeq = '{}'", kv.valueSeq());
|
|
std::println("valueSeq(4,2) = '{}'", kv.valueSeq(4, 2));
|
|
std::println("valueJoinSeq = '{}'", kv.valueJoinSeq<std::string_view>(3, 3));
|
|
std::println("valueJoinSeq = '{}'", kv.valueJoinSeq<std::string_view>(3, 30));
|
|
kv.setKeyValue("VAL", std::make_tuple(1, std::string{"RRR"}, 10.24));
|
|
std::println("\n\nKV = {}", v);
|
|
|
|
snplib_keyvalue_expr_t kvl{ll};
|
|
|
|
std::println("\n\nKV = {}", ll);
|
|
std::println("key = '{}'", kvl.key());
|
|
std::println("key = '{}'", kvl.key<std::string>());
|
|
std::println("value = '{}'", kvl.value());
|
|
std::println("valueSeq = '{}'", kvl.valueSeq());
|
|
std::println("valueSeq(4,2) = '{}'", kvl.valueSeq(4, 2));
|
|
std::println("valueSeq = '{}'", kvl.valueSeq<std::list<std::string>>());
|
|
|
|
std::println("\nOwning 'key-value'");
|
|
snplib_keyvalue_expr_t<std::vector<char>> kv1;
|
|
|
|
kv1.setKeyValue("KEY", 7.7);
|
|
std::println("key = '{}'", kv1.key());
|
|
std::println("value = '{}'", kv1.value());
|
|
|
|
snplib_random_string_generator_t<> rstr_gen;
|
|
|
|
std::println("\n\n");
|
|
std::println("RAND STR: {}", rstr_gen.generate());
|
|
std::println("RAND STR: {}", rstr_gen.generate());
|
|
std::println("UUID v.4: {}", rstr_gen.UUIDv4String());
|
|
std::println("UUID v.4: {}", rstr_gen.UUIDv4String());
|
|
|
|
return 0;
|
|
} |