2023-09-14 15:35:39 +00:00
|
|
|
#include "commons.hpp"
|
2023-09-15 09:11:06 +00:00
|
|
|
#include "src/Prototype.hpp"
|
2023-09-14 15:35:39 +00:00
|
|
|
|
|
|
|
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));
|
2023-09-15 09:11:06 +00:00
|
|
|
}, std::make_shared<grino::Prototype>(std::vector<grino::TypeSlot>{
|
|
|
|
grino::TypeSlot {grino::HINT_CAT_PARAM, grino::TYPE_STRING},
|
|
|
|
grino::TypeSlot {grino::HINT_CAT_RETURN, grino::TYPE_INT}
|
|
|
|
}));
|
2023-09-14 15:35:39 +00:00
|
|
|
|
|
|
|
loader.add_native("itos", [loc](auto args){
|
|
|
|
int value = args[0]->as_int();
|
|
|
|
return grino::Value::make_string(loc, std::to_string(value));
|
2023-09-15 09:11:06 +00:00
|
|
|
}, std::make_shared<grino::Prototype>(std::vector<grino::TypeSlot>{
|
|
|
|
grino::TypeSlot {grino::HINT_CAT_PARAM, grino::TYPE_INT},
|
|
|
|
grino::TypeSlot {grino::HINT_CAT_RETURN, grino::TYPE_STRING}
|
|
|
|
}));
|
2023-09-14 15:35:39 +00:00
|
|
|
|
|
|
|
loader.add_native("stof", [loc](auto args){
|
|
|
|
std::string value = args[0]->as_string();
|
|
|
|
return grino::Value::make_int(loc, std::stof(value));
|
2023-09-15 09:11:06 +00:00
|
|
|
}, std::make_shared<grino::Prototype>(std::vector<grino::TypeSlot>{
|
|
|
|
grino::TypeSlot {grino::HINT_CAT_PARAM, grino::TYPE_STRING},
|
|
|
|
grino::TypeSlot {grino::HINT_CAT_RETURN, grino::TYPE_FLOAT}
|
|
|
|
}));
|
2023-09-14 15:35:39 +00:00
|
|
|
|
|
|
|
loader.add_native("ftos", [loc](auto args){
|
|
|
|
float value = args[0]->as_float();
|
|
|
|
return grino::Value::make_string(loc, std::to_string(value));
|
2023-09-15 09:11:06 +00:00
|
|
|
}, std::make_shared<grino::Prototype>(std::vector<grino::TypeSlot>{
|
|
|
|
grino::TypeSlot {grino::HINT_CAT_PARAM, grino::TYPE_FLOAT},
|
|
|
|
grino::TypeSlot {grino::HINT_CAT_RETURN, grino::TYPE_STRING}
|
|
|
|
}));
|
2023-09-14 15:35:39 +00:00
|
|
|
}
|