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