generateSeed method

SeedCallback<T>? generateSeed({
  1. int? startOffset,
  2. SeedCallback<T>? override,
  3. SeedCallback<T>? fallback,
})

Implementation

SeedCallback<T>? generateSeed({
  int? startOffset,
  SeedCallback<T>? override,
  SeedCallback<T>? fallback,
}) {
  if (override != null) return override;

  _maybeSeedValue();

  if (startOffset != null) {
    return valueAt(startOffset).p(O.fold(
      () => fallback,
      (v) => () => O.some(v),
    ));
  }

  final fallbackOption = O.fromNullable(fallback);
  return () => value.p(O.alt(() => fallbackOption.p(O.flatMap((f) => f()))));
}