BitList.of constructor

BitList.of(
  1. Iterable<bool> other, {
  2. bool growable = false,
})

Constructs a new list from a given Iterable of booleans.

Implementation

factory BitList.of(Iterable<bool> other, {bool growable = false}) {
  final length = other.length;
  final result = BitList(length, growable: growable);
  final buffer = result.buffer;
  if (other is BitList) {
    buffer.setAll(0, other.buffer);
  } else {
    final iterator = other.iterator;
    for (var i = 0; i < buffer.length; i++) {
      var value = 0;
      for (var j = 0; j <= bitOffset && iterator.moveNext(); j++) {
        if (iterator.current) {
          value |= bitSetMask[j];
        }
      }
      buffer[i] = value;
    }
  }
  return result;
}