Chain<Initial, Final> constructor

Chain<Initial, Final>({
  1. Duration? timeout,
  2. Map<String, dynamic>? initialMetadata,
  3. bool shouldRollbackOnError = true,
})

A type-safe implementation of Chain of Responsibility pattern that transforms data through a sequence of processing steps.

Key features:

  • Type-safe data flow between steps
  • Automatic rollback on failure
  • Rich error handling and execution control
  • Extensible through mixins

Example:

final chain = Chain<RequestData, ResponseData>()
  ..addStep(ValidationStep())
  ..addStep(ProcessingStep());

final result = await chain.run(RequestData('test'));

Implementation

Chain({
  Duration? timeout,
  Map<String, dynamic>? initialMetadata,
  this.shouldRollbackOnError = true,
}) : context = ChainContext(
        timeout: timeout,
        initialMetadata: initialMetadata,
      );