interleave_iterator 0.1.2 copy "interleave_iterator: ^0.1.2" to clipboard
interleave_iterator: ^0.1.2 copied to clipboard

Adds interleave and interleaveFactory extension methods to Iterable, inserting a separator between every pair of adjacent elements.

example/interleave_iterator_example.dart

import 'package:interleave_iterator/interleave_iterator.dart';

void main() {
  // interleave: insert the same separator value between every pair of elements.
  final numbers = [1, 2, 3, 4, 5].interleave(0).toList();
  print('Numbers with 0 separator: $numbers');
  // [1, 0, 2, 0, 3, 0, 4, 0, 5]

  final words = ['one', 'two', 'three'].interleave('|').toList();
  print('Words with | separator:   $words');
  // [one, |, two, |, three]

  // Edge cases: empty and single-element iterables produce no separator.
  print('Empty list:               ${[].interleave(0).toList()}');
  print('Single element:           ${[42].interleave(0).toList()}');

  // interleaveFactory: the factory is called once per gap, so each separator
  // is a distinct object — handy for Flutter widgets that must not be reused.
  var separatorCount = 0;
  final counted = ['a', 'b', 'c'].interleaveFactory(() {
    separatorCount++;
    return 'sep$separatorCount';
  }).toList();
  print('Unique separators:        $counted');
  // [a, sep1, b, sep2, c]
}
1
likes
160
points
214
downloads

Documentation

API reference

Publisher

verified publisherinstahelp.me

Weekly Downloads

Adds interleave and interleaveFactory extension methods to Iterable, inserting a separator between every pair of adjacent elements.

Repository (GitHub)
View/report issues

License

BSD-3-Clause (license)

More

Packages that depend on interleave_iterator