get rid of most remaining cs_string
parent
4e5e0f5de8
commit
fece7ce769
|
@ -4,8 +4,8 @@
|
||||||
|
|
||||||
namespace cscript {
|
namespace cscript {
|
||||||
|
|
||||||
static cs_string intstr(cs_int v) {
|
static cs_charbuf intstr(cs_int v, cs_shared_state &cs) {
|
||||||
auto app = ostd::appender<cs_string>();
|
auto app = ostd::appender<cs_charbuf>(cs);
|
||||||
try {
|
try {
|
||||||
ostd::format(app, CS_INT_FORMAT, v);
|
ostd::format(app, CS_INT_FORMAT, v);
|
||||||
} catch (ostd::format_error const &e) {
|
} catch (ostd::format_error const &e) {
|
||||||
|
@ -14,8 +14,8 @@ static cs_string intstr(cs_int v) {
|
||||||
return std::move(app.get());
|
return std::move(app.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
static cs_string floatstr(cs_float v) {
|
static cs_charbuf floatstr(cs_float v, cs_shared_state &cs) {
|
||||||
auto app = ostd::appender<cs_string>();
|
auto app = ostd::appender<cs_charbuf>(cs);
|
||||||
try {
|
try {
|
||||||
ostd::format(
|
ostd::format(
|
||||||
app, (v == floor(v)) ? CS_ROUND_FLOAT_FORMAT : CS_FLOAT_FORMAT, v
|
app, (v == floor(v)) ? CS_ROUND_FLOAT_FORMAT : CS_FLOAT_FORMAT, v
|
||||||
|
@ -190,13 +190,13 @@ cs_int cs_value::force_int() {
|
||||||
}
|
}
|
||||||
|
|
||||||
ostd::string_range cs_value::force_str() {
|
ostd::string_range cs_value::force_str() {
|
||||||
cs_string rs;
|
cs_charbuf rs{*state()};
|
||||||
switch (get_type()) {
|
switch (get_type()) {
|
||||||
case cs_value_type::FLOAT:
|
case cs_value_type::FLOAT:
|
||||||
rs = floatstr(csv_get<cs_float>(p_stor));
|
rs = std::move(floatstr(csv_get<cs_float>(p_stor), *state()));
|
||||||
break;
|
break;
|
||||||
case cs_value_type::INT:
|
case cs_value_type::INT:
|
||||||
rs = intstr(csv_get<cs_int>(p_stor));
|
rs = std::move(intstr(csv_get<cs_int>(p_stor), *state()));
|
||||||
break;
|
break;
|
||||||
case cs_value_type::STRING:
|
case cs_value_type::STRING:
|
||||||
return ostd::string_range(
|
return ostd::string_range(
|
||||||
|
@ -205,7 +205,7 @@ ostd::string_range cs_value::force_str() {
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
set_str(rs);
|
set_str(rs.str());
|
||||||
return ostd::string_range(*reinterpret_cast<cs_strref const *>(&p_stor));
|
return ostd::string_range(*reinterpret_cast<cs_strref const *>(&p_stor));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -260,9 +260,13 @@ cs_strref cs_value::get_str() const {
|
||||||
case cs_value_type::STRING:
|
case cs_value_type::STRING:
|
||||||
return *reinterpret_cast<cs_strref const *>(&p_stor);
|
return *reinterpret_cast<cs_strref const *>(&p_stor);
|
||||||
case cs_value_type::INT:
|
case cs_value_type::INT:
|
||||||
return cs_strref{*state(), intstr(csv_get<cs_int>(p_stor))};
|
return cs_strref{
|
||||||
|
*state(), intstr(csv_get<cs_int>(p_stor), *state()).str()
|
||||||
|
};
|
||||||
case cs_value_type::FLOAT:
|
case cs_value_type::FLOAT:
|
||||||
return cs_strref{*state(), floatstr(csv_get<cs_float>(p_stor))};
|
return cs_strref{
|
||||||
|
*state(), floatstr(csv_get<cs_float>(p_stor), *state()).str()
|
||||||
|
};
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue