deranged 0.0.0 copy "deranged: ^0.0.0" to clipboard
deranged: ^0.0.0 copied to clipboard

Generic range and progression classes, inspired by Rust and Kotlin

example/main.dart

// ignore_for_file: avoid_print, avoid-collection-methods-with-unrelated-types

import 'package:deranged/deranged.dart';

void main() {
  // Ranges

  final rangeUntil = 0.rangeUntil(5);
  print(
    '$rangeUntil contains ${rangeUntil.length} elements: '
    '${rangeUntil.toList()}',
  );
  print('Contains 0? ${rangeUntil.contains(0)}'); // true
  print('Contains 1? ${rangeUntil.contains(1)}'); // true
  print('Contains 2.5? ${rangeUntil.contains(2.5)}'); // false
  print('Contains 4? ${rangeUntil.contains(4)}'); // true
  print('Contains 5? ${rangeUntil.contains(5)}'); // false

  final rangeTo = 0.rangeTo(5);
  print('$rangeTo contains ${rangeTo.length} elements: ${rangeTo.toList()}');
  // IntRange(0..=5) contains 6 elements: [0, 1, 2, 3, 4, 5]

  const intRangeTo = IntRangeTo(5);
  print('$intRangeTo contains 0? ${intRangeTo.contains(0)}'); // true
  print('$intRangeTo contains 2.2? ${intRangeTo.contains(2.2)}'); // false
  print('$intRangeTo contains 4? ${intRangeTo.contains(4)}'); // true
  print('$intRangeTo contains 5? ${intRangeTo.contains(5)}'); // true

  // Progression

  print('0..10 stepBy 2: ${0.rangeTo(10).stepBy(2).toList()}');
  // 0..10 stepBy 2: [0, 2, 4, 6, 8, 10]
}
1
likes
160
points
26
downloads

Publisher

verified publisherwanke.dev

Weekly Downloads

Generic range and progression classes, inspired by Rust and Kotlin

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

collection, glados, meta

More

Packages that depend on deranged