import 'dart:math';

import 'package:flutter/material.dart';

extension IterableHelper<T> on Iterable<T> {
  T? firstWhereOrNull(bool Function(T) test) => where(test).firstOrNull;
}

extension NullableIterableHelper<T> on Iterable<T?> {
  Iterable<T> whereNotNull() => where((element) => element != null).cast();
}

extension ListHelper<T> on List<T> {

  // List<T> shuffle([int? seed]) {
  //   Random r = Random(seed);
  //   var items = [...this];
  //   for (var i = length - 1; i > 0; i--) {
  //     var n = r.nextInt(i + 1);
  //
  //     var temp = items[i];
  //     items[i] = items[n];
  //     items[n] = temp;
  //   }
  //
  //   return items;
  // }

}