59 lines
1.4 KiB
Plaintext
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;
|
|
}
|