toNative static method
dynamic
toNative(
- DBusValue value
Implementation
static dynamic toNative(DBusValue value) {
if (value is DBusString ||
value is DBusBoolean ||
value is DBusByte ||
value is DBusInt16 ||
value is DBusUint16 ||
value is DBusInt32 ||
value is DBusUint32 ||
value is DBusInt64 ||
value is DBusUint64 ||
value is DBusDouble) {
// DBusObjectPath extend from DBusString so it should be placed here
if (value is DBusObjectPath) {
return value.value;
}
return '${value.signature.value}:${value.toNative()}';
// return value.toNative();
} else if (value is DBusSignature) {
return value.value;
}
if (value is DBusArray) {
return value.children.map(toNative).toList();
}
if (value is DBusDict) {
return Map.fromEntries(
value.children.entries
.map((e) => MapEntry(toNative(e.key), toNative(e.value))),
);
}
if (value is DBusStruct) {
return value.children.map(toNative).toList();
}
if (value is DBusVariant) {
return '${value.signature.value}:${toNative(value.value)}';
// return toNative(value.value);
}
throw UnsupportedError('Unsupported DBusValue type: ${value.runtimeType}');
}