selectProviders method

  1. @override
List<AIProvider> selectProviders(
  1. List<AIProvider> available,
  2. Map<String, List<Duration>> latencyHistory
)
override

Orders the available providers based on this strategy's logic.

Implementation

@override
List<AIProvider> selectProviders(
  List<AIProvider> available,
  Map<String, List<Duration>> latencyHistory,
) {
  if (available.isEmpty) return [];
  _index = _index % available.length;
  final reordered = [
    ...available.sublist(_index),
    ...available.sublist(0, _index),
  ];
  _index = (_index + 1) % available.length;
  return reordered;
}