27 lines
735 B
C++
27 lines
735 B
C++
|
#include "commons.hpp"
|
||
|
|
||
|
extern "C" void lib_cast(grino::Loader& loader)
|
||
|
{
|
||
|
grino::Loc loc {"core/casts"};
|
||
|
|
||
|
loader.add_native("stoi", [loc](auto args){
|
||
|
std::string value = args[0]->as_string();
|
||
|
return grino::Value::make_int(loc, std::stoi(value));
|
||
|
});
|
||
|
|
||
|
loader.add_native("itos", [loc](auto args){
|
||
|
int value = args[0]->as_int();
|
||
|
return grino::Value::make_string(loc, std::to_string(value));
|
||
|
});
|
||
|
|
||
|
loader.add_native("stof", [loc](auto args){
|
||
|
std::string value = args[0]->as_string();
|
||
|
return grino::Value::make_int(loc, std::stof(value));
|
||
|
});
|
||
|
|
||
|
loader.add_native("ftos", [loc](auto args){
|
||
|
float value = args[0]->as_float();
|
||
|
return grino::Value::make_string(loc, std::to_string(value));
|
||
|
});
|
||
|
}
|