Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kseo/range_collection

A collection library for range.
https://github.com/kseo/range_collection

Last synced: 26 days ago
JSON representation

A collection library for range.

Awesome Lists containing this project

README

        

# range_collection

A collection library for Range data type. This project is heavily inspired by Guava's [Range][range], [RangeSet][rangeset] and [RangeMap][rangemap] classes.

[![Build Status](https://travis-ci.org/kseo/range_collection.svg)](https://travis-ci.org/kseo/range_collection)
[![Coverage Status](https://coveralls.io/repos/kseo/range_collection/badge.svg?branch=master&service=github)](https://coveralls.io/github/kseo/range_collection?branch=master)

[range]: https://github.com/google/guava/wiki/RangesExplained
[rangeset]: https://github.com/google/guava/wiki/NewCollectionTypesExplained#rangeset
[rangemap]: https://github.com/google/guava/wiki/NewCollectionTypesExplained#rangemap

## Usage

A simple usage example:

```dart
library range_collection.example;

import 'package:range_collection/range_collection.dart';

main() {
RangeSet rangeSet = new SkipListRangeSet();
rangeSet.add(new Range.closed(1, 10));
print(rangeSet); // {[1, 10]}

rangeSet.add(new Range.closedOpen(11, 15));
print(rangeSet); // disconnected range; {[1, 10], [11, 15)}

rangeSet.add(new Range.closedOpen(15, 20));
print(rangeSet); // connected range; {[1, 10], [11, 20)}

rangeSet.add(new Range.openClosed(0, 0));
print(rangeSet); // empty range; {[1, 10], [11, 20)}

rangeSet.remove(new Range.open(5, 10));
print(rangeSet); // splits [1, 10]; {[1, 5], [10, 10], [11, 20)}}
}
```

## Features and bugs

Please file feature requests and bugs at the [issue tracker][tracker].

[tracker]: https://github.com/kseo/range_collection/issues