Files
libstorm-nvgt/dict_utils.nvgt

73 lines
1.7 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;
}