causality 0.0.1 copy "causality: ^0.0.1" to clipboard
causality: ^0.0.1 copied to clipboard

Cause and effect in the Dart universe. A way to describe the relation between causes and effects.

example/main.dart

import 'package:causality/causality.dart';

void main() async {
  final causalityUniverse = CausalityUniverse();

  printDataEffect.observe(
    [
      DataAvailableCause,
    ],
    universe: causalityUniverse,
  );

  causalityUniverse
    ..observe(
      causeTypes: [
        DataRequestedCause,
      ],
      effect: getDataEffect,
    )
    ..emit(DataRequestedCause());

  await causalityUniverse.idle();
}

class DataRequestedCause extends Cause {}

class DataAvailableCause extends Cause {
  DataAvailableCause(this.data);

  final String data;
}

final getDataEffect = Effect(
  (_) async => [
    DataAvailableCause('data'),
  ],
);

final printDataEffect = Effect((cause) {
  switch (cause) {
    case DataAvailableCause _:
      // ignore: avoid_print
      print(cause.data);
  }
  return [];
});
1
likes
160
points
36
downloads

Publisher

verified publishergoddchen.de

Weekly Downloads

Cause and effect in the Dart universe. A way to describe the relation between causes and effects.

Repository (GitHub)

Documentation

API reference

License

Apache-2.0 (license)

Dependencies

clock, equatable, fimber

More

Packages that depend on causality