68 std::string convertFromString<std::string>(
const StringView& str)
70 return std::string( str.data(), str.size() );
76 return str.to_string().c_str();
82 return std::stoi(str.data());
88 return std::stoul(str.data());
94 return std::stod(str.data());
98 std::vector<int> convertFromString<std::vector<int>>(
const StringView& str)
101 std::vector<int> output;
102 output.reserve( parts.size() );
106 output.push_back( std::strtol( part.data(), &end, 10 ) );
112 std::vector<double> convertFromString<std::vector<double>>(
const StringView& str)
115 std::vector<double> output;
116 output.reserve( parts.size() );
120 output.push_back( std::strtod( part.data(), &end ) );
134 else if (str[0] ==
'1')
140 std::runtime_error(
"invalid bool conversion");
143 else if (str.size() == 4)
145 if (str ==
"true" || str ==
"TRUE" || str ==
"True")
151 std::runtime_error(
"invalid bool conversion");
154 else if (str.size() == 5)
156 if (str ==
"false" || str ==
"FALSE" || str ==
"False")
162 std::runtime_error(
"invalid bool conversion");
166 std::runtime_error(
"invalid bool conversion");
181 throw std::invalid_argument(std::string(
"Cannot convert this to NodeStatus: ") + str.to_string() );
195 throw std::invalid_argument(std::string(
"Cannot convert this to NodeType: ") + str.to_string());
212 std::vector<StringView> splitted_strings;
213 splitted_strings.reserve(4);
216 while( pos < strToSplit.size())
218 size_t new_pos = strToSplit.find_first_of(delimeter, pos);
219 if( new_pos == std::string::npos)
221 new_pos = strToSplit.size();
223 StringView sv = { &strToSplit.data()[pos], new_pos - pos };
224 splitted_strings.push_back( sv );
227 return splitted_strings;
double convertFromString< double >(const StringView &str)
NodeType convertFromString< NodeType >(const StringView &str)
std::ostream & operator<<(std::ostream &os, const BT::NodeStatus &status)
unsigned convertFromString< unsigned >(const StringView &str)
const char * toStr(const BT::NodeStatus &status, bool colored=false)
toStr converts NodeStatus to string. Optionally colored.
std::vector< StringView > splitString(const StringView &strToSplit, char delimeter)
NodeStatus convertFromString< NodeStatus >(const StringView &str)
nonstd::string_view StringView
const char * convertFromString< const char * >(const StringView &str)
bool convertFromString< bool >(const StringView &str)
int convertFromString< int >(const StringView &str)