diff --git a/lib/src/platform/iris_method_channel_interface.dart b/lib/src/platform/iris_method_channel_interface.dart index 40df4ef..2c66a4b 100644 --- a/lib/src/platform/iris_method_channel_interface.dart +++ b/lib/src/platform/iris_method_channel_interface.dart @@ -1,6 +1,7 @@ import 'dart:typed_data'; -import 'package:flutter/foundation.dart' show VoidCallback, SynchronousFuture; +import 'package:flutter/foundation.dart' + show VoidCallback, SynchronousFuture, immutable; import 'package:iris_method_channel/src/iris_handles.dart'; import 'package:iris_method_channel/src/platform/iris_event_interface.dart'; import 'package:iris_method_channel/src/scoped_objects.dart'; @@ -17,12 +18,27 @@ class BufferParam { final int length; } +@immutable class CallApiResult { - CallApiResult( - {required this.irisReturnCode, required this.data, this.rawData = ''}); + factory CallApiResult({ + required Map data, + required int irisReturnCode, + String rawData = '', + }) { + return CallApiResult._( + data: Map.from(data), + irisReturnCode: irisReturnCode, + rawData: rawData, + ); + } - final int irisReturnCode; + const CallApiResult._({ + required this.irisReturnCode, + required this.data, + this.rawData = '', + }); + final int irisReturnCode; final Map data; // TODO(littlegnal): Remove rawData after EP-253 landed.