snapshot method

NeuronDebugSnapshot snapshot()

Implementation

NeuronDebugSnapshot snapshot() {
  final signals = <String, dynamic>{};
  final computed = <String, dynamic>{};

  for (final entry in _notifiers.values) {
    final data = entry.toJson();
    if (entry.kind == 'computed') {
      computed[entry.id] = data;
    } else {
      signals[entry.id] = data;
    }
  }

  return NeuronDebugSnapshot(
    signals: signals,
    computed: computed,
    controllers: _controllers.values.map((c) => c.toJson()).toList(),
    middlewares: List<Map<String, dynamic>>.from(_middlewares),
    history: _history.map((e) => e.toJson()).toList(),
    perSignalHistory: {
      for (final entry in _perSignalHistory.entries)
        entry.key: entry.value.map((e) => e.toJson()).toList(),
    },
    metrics: metricsProvider?.call() ?? const {},
    timestamp: DateTime.now().millisecondsSinceEpoch,
  );
}