#include "ikarus/values/value.h" #include #include #include #include #include #include bool ikarus_value_is_indeterminate(IkarusValue const * value) { return value->indeterminate; } char const * ikarus_value_to_string(IkarusValue const * value) { auto str = std::visit( cppbase::overloaded{ [](IkarusToggleValue const * toggle_value) -> std::string { return toggle_value->value ? "true" : "false"; }, [](IkarusNumberValue const * number_value) -> std::string { return fmt::format("{}", number_value->value); }, [](IkarusTextValue const * text_value) -> std::string { return fmt::format("{}", text_value->value); }, }, value->data ); char * ret = new char[str.size() + 1]; std::strncpy(ret, str.data(), str.size() + 1); return ret; }