added json support to Rx
resolves the value (for native types) or "toJson()" in custom classes.
Showing
1 changed file
with
6 additions
and
0 deletions
| 1 | import 'dart:async'; | 1 | import 'dart:async'; |
| 2 | import 'dart:collection'; | 2 | import 'dart:collection'; |
| 3 | + | ||
| 3 | import '../rx_core/rx_interface.dart'; | 4 | import '../rx_core/rx_interface.dart'; |
| 4 | 5 | ||
| 5 | RxInterface getObs; | 6 | RxInterface getObs; |
| @@ -102,6 +103,8 @@ class _RxImpl<T> implements RxInterface<T> { | @@ -102,6 +103,8 @@ class _RxImpl<T> implements RxInterface<T> { | ||
| 102 | @override | 103 | @override |
| 103 | String toString() => value.toString(); | 104 | String toString() => value.toString(); |
| 104 | 105 | ||
| 106 | + dynamic toJson() => value; | ||
| 107 | + | ||
| 105 | /// This equality override works for _RxImpl instances and the internal values. | 108 | /// This equality override works for _RxImpl instances and the internal values. |
| 106 | @override | 109 | @override |
| 107 | bool operator ==(dynamic o) { | 110 | bool operator ==(dynamic o) { |
| @@ -285,6 +288,9 @@ class Rx<T> extends _RxImpl<T> { | @@ -285,6 +288,9 @@ class Rx<T> extends _RxImpl<T> { | ||
| 285 | Rx([T initial]) { | 288 | Rx([T initial]) { |
| 286 | _value = initial; | 289 | _value = initial; |
| 287 | } | 290 | } |
| 291 | + | ||
| 292 | + @override | ||
| 293 | + dynamic toJson() => (value as dynamic)?.toJson(); | ||
| 288 | } | 294 | } |
| 289 | 295 | ||
| 290 | extension StringExtension on String { | 296 | extension StringExtension on String { |
-
Please register or login to post a comment