Files
libstorm-nvgt/dict_utils.nvgt
2026-02-16 19:49:29 -05:00

59 lines
1.4 KiB
Plaintext

// Dictionary utility helpers.
double dict_get_number(dictionary@ data, const string&in key, double defaultValue) {
double value = 0.0;
if (@data is null) return defaultValue;
if (data.get(key, value)) return value;
int valueInt = 0;
if (data.get(key, valueInt)) return valueInt;
string valueString = "";
if (data.get(key, valueString)) {
return parse_int(valueString);
}
return defaultValue;
}
bool dict_get_bool(dictionary@ data, const string&in key, bool defaultValue) {
bool value = false;
if (@data is null) return defaultValue;
if (data.get(key, value)) return value;
int valueInt = 0;
if (data.get(key, valueInt)) return valueInt != 0;
string valueString = "";
if (data.get(key, valueString)) return valueString == "1" || valueString == "true";
return defaultValue;
}
bool dict_has_keys(dictionary@ data) {
if (@data is null) return false;
string[]@ keys = data.get_keys();
return @keys !is null && keys.length() > 0;
}
bool dict_has_number_key(dictionary@ data, const string&in key) {
double value = 0.0;
if (@data is null) return false;
if (data.get(key, value)) return true;
int valueInt = 0;
if (data.get(key, valueInt)) return true;
string valueString = "";
if (data.get(key, valueString)) return valueString.length() > 0;
return false;
}
string[] dict_get_string_list(dictionary@ data, const string&in key) {
string[] result;
if (@data is null) return result;
if (!data.get(key, result)) return result;
return result;
}