Container System 0.1.0
High-performance C++20 type-safe container framework with SIMD-accelerated serialization
Loading...
Searching...
No Matches
utilities::conversion::convert_string Class Reference

String conversion utilities. More...

#include <convert_string.h>

Collaboration diagram for utilities::conversion::convert_string:
Collaboration graph

Static Public Member Functions

template<typename T >
static std::string to_string (const T &value)
 
static std::string to_string (bool value)
 
static const std::string & to_string (const std::string &value)
 
template<typename T >
static T from_string (const std::string &str)
 
static std::string bytes_to_hex (const std::vector< uint8_t > &bytes)
 
static std::vector< uint8_t > hex_to_bytes (const std::string &hex)
 
static std::string trim (const std::string &str)
 
static std::vector< std::string > split (const std::string &str, char delimiter)
 
static std::string join (const std::vector< std::string > &strings, const std::string &delimiter)
 

Detailed Description

String conversion utilities.

Definition at line 19 of file convert_string.h.

Member Function Documentation

◆ bytes_to_hex()

static std::string utilities::conversion::convert_string::bytes_to_hex ( const std::vector< uint8_t > & bytes)
inlinestatic

Definition at line 69 of file convert_string.h.

69 {
70 std::ostringstream oss;
71 oss << std::hex;
72 for (uint8_t byte : bytes) {
73 oss << static_cast<int>(byte);
74 }
75 return oss.str();
76 }

◆ from_string()

template<typename T >
static T utilities::conversion::convert_string::from_string ( const std::string & str)
inlinestatic

Definition at line 45 of file convert_string.h.

45 {
46 if constexpr (std::is_same_v<T, std::string>) {
47 return str;
48 } else if constexpr (std::is_same_v<T, int>) {
49 return std::stoi(str);
50 } else if constexpr (std::is_same_v<T, long>) {
51 return std::stol(str);
52 } else if constexpr (std::is_same_v<T, long long>) {
53 return std::stoll(str);
54 } else if constexpr (std::is_same_v<T, float>) {
55 return std::stof(str);
56 } else if constexpr (std::is_same_v<T, double>) {
57 return std::stod(str);
58 } else if constexpr (std::is_same_v<T, bool>) {
59 return str == "true" || str == "1" || str == "yes";
60 } else {
61 std::istringstream iss(str);
62 T value;
63 iss >> value;
64 return value;
65 }
66 }

◆ hex_to_bytes()

static std::vector< uint8_t > utilities::conversion::convert_string::hex_to_bytes ( const std::string & hex)
inlinestatic

Definition at line 79 of file convert_string.h.

79 {
80 std::vector<uint8_t> bytes;
81 bytes.reserve(hex.length() / 2);
82
83 for (size_t i = 0; i < hex.length(); i += 2) {
84 std::string byte_str = hex.substr(i, 2);
85 uint8_t byte = static_cast<uint8_t>(std::stoul(byte_str, nullptr, 16));
86 bytes.push_back(byte);
87 }
88
89 return bytes;
90 }

◆ join()

static std::string utilities::conversion::convert_string::join ( const std::vector< std::string > & strings,
const std::string & delimiter )
inlinestatic

Definition at line 115 of file convert_string.h.

115 {
116 if (strings.empty()) return "";
117
118 std::ostringstream oss;
119 oss << strings[0];
120
121 for (size_t i = 1; i < strings.size(); ++i) {
122 oss << delimiter << strings[i];
123 }
124
125 return oss.str();
126 }

◆ split()

static std::vector< std::string > utilities::conversion::convert_string::split ( const std::string & str,
char delimiter )
inlinestatic

Definition at line 102 of file convert_string.h.

102 {
103 std::vector<std::string> tokens;
104 std::istringstream iss(str);
105 std::string token;
106
107 while (std::getline(iss, token, delimiter)) {
108 tokens.push_back(token);
109 }
110
111 return tokens;
112 }

◆ to_string() [1/3]

static std::string utilities::conversion::convert_string::to_string ( bool value)
inlinestatic

Definition at line 34 of file convert_string.h.

34 {
35 return value ? "true" : "false";
36 }

◆ to_string() [2/3]

static const std::string & utilities::conversion::convert_string::to_string ( const std::string & value)
inlinestatic

Definition at line 39 of file convert_string.h.

39 {
40 return value;
41 }

◆ to_string() [3/3]

template<typename T >
static std::string utilities::conversion::convert_string::to_string ( const T & value)
inlinestatic

Definition at line 23 of file convert_string.h.

23 {
24 if constexpr (std::is_arithmetic_v<T>) {
25 return std::to_string(value);
26 } else {
27 std::ostringstream oss;
28 oss << value;
29 return oss.str();
30 }
31 }

◆ trim()

static std::string utilities::conversion::convert_string::trim ( const std::string & str)
inlinestatic

Definition at line 93 of file convert_string.h.

93 {
94 size_t start = str.find_first_not_of(" \t\r\n");
95 if (start == std::string::npos) return "";
96
97 size_t end = str.find_last_not_of(" \t\r\n");
98 return str.substr(start, end - start + 1);
99 }

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