atomic_state 0.1.2 atomic_state: ^0.1.2 copied to clipboard
A dart package for global application atomically immutable updated state.
import 'dart:convert';
import 'package:atomic_state/atomic_state.dart';
class Counter {
static String name = 'counter';
final int count;
Counter({this.count = 0});
factory Counter.from(Counter counter, {int count}) =>
Counter(count: count ?? counter.count);
Counter inc([int value = 1]) => Counter.from(this, count: count + value);
Map<String, dynamic> toJson() => {'count': count};
}
void main() {
final store = Store([Counter()]);
store.updateState<Counter>((counter) => counter.inc());
assert(store.getState<Counter>().count == 1);
assert(jsonEncode(store) == '{"Counter":{"count":1}}');
}