{"id":19300140,"url":"https://github.com/charlesahunt/range-tree-map","last_synced_at":"2025-04-22T10:31:33.605Z","repository":{"id":57718174,"uuid":"137845268","full_name":"CharlesAHunt/range-tree-map","owner":"CharlesAHunt","description":"A data structure mapping ranges to values based on a TreeMap","archived":false,"fork":false,"pushed_at":"2024-04-27T05:33:43.000Z","size":199,"stargazers_count":4,"open_issues_count":3,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-04-27T06:26:51.461Z","etag":null,"topics":["interval","intervalmap","range","rangetreemap","scala","treemap","treerangemap"],"latest_commit_sha":null,"homepage":"","language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CharlesAHunt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-19T05:44:21.000Z","updated_at":"2024-04-27T06:26:53.289Z","dependencies_parsed_at":"2024-04-27T06:26:53.063Z","dependency_job_id":"fefdbf9d-f2c8-44cb-862c-f84072b8f59e","html_url":"https://github.com/CharlesAHunt/range-tree-map","commit_stats":null,"previous_names":["charlesahunt/treerangemap","charlesahunt/range-tree-map"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlesAHunt%2Frange-tree-map","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlesAHunt%2Frange-tree-map/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlesAHunt%2Frange-tree-map/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CharlesAHunt%2Frange-tree-map/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CharlesAHunt","download_url":"https://codeload.github.com/CharlesAHunt/range-tree-map/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223893030,"owners_count":17220834,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["interval","intervalmap","range","rangetreemap","scala","treemap","treerangemap"],"created_at":"2024-11-09T23:13:59.155Z","updated_at":"2024-11-09T23:13:59.808Z","avatar_url":"https://github.com/CharlesAHunt.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RangeTreeMap\n\u003e A generic map from ranges to values based on a TreeMap backed by Scala's red-black tree.\n\n[![CircleCI](https://circleci.com/gh/CharlesAHunt/RangeTreeMap.svg?style=shield)](https://circleci.com/gh/CharlesAHunt/RangeTreeMap)\n[![Maven Central](https://img.shields.io/maven-central/v/com.charlesahunt/range-tree-map_2.12.svg?color=green)](https://maven-badges.herokuapp.com/maven-central/com.charlesahunt/range-tree-map_2.12)\n[![Waffle.io - Columns and their card count](https://badge.waffle.io/CharlesAHunt/RangeTreeMap.svg?columns=all)](https://waffle.io/CharlesAHunt/RangeTreeMap)\n[![codecov.io](http://codecov.io/github/charlesahunt/rangetreemap/coverage.svg?branch=master)](http://codecov.io/github/charlesahunt/rangetreemap?branch=master)\n\nThe underlying data structure is a TreeMap backed by a Red-black tree mapping from a lower bound of `K` to a\n `RangeEntry[K, V]`, sorted by an implicit `Ordering[K]`.  Overlapping ranges are allowed with `put`, non overlapping\n ranges are handled using `putCoalesce`.\n\n## Installation\n\nsbt\n\n```sh\n\"com.charlesahunt\" %% \"range-tree-map\" % \"0.3.1\"\n```\n\nmill\n\n```sh\nivy\"com.charlesahunt::range-tree-map:0.3.1\"\n```\n\n## Usage example\n\n```scala\n\n    import scala.math.Ordering._\n\n    val rangeMap = RangeTreeMap.apply[Int, String]\n\n    val rangeKey = RangeKey[Int](lower = 5, upper = 10)\n    \n    rangeMap.put(rangeKey, \"exampleValue\")\n\n```\n_For more examples and usage, please refer to the [Wiki](https://github.com/CharlesAHunt/RangeTreeMap/wiki)_\n\n\n## Release History\n\n* 0.3.1\n    * Fix bug in putCoalesce with intersections on different values\n* 0.3.0\n    * Complete putCoalesce - First release with full functionality\n* 0.2.3\n    * Fix put to create discreet ranges, refactor putCoalesce which still needs to be completed\n* 0.2.2\n    * Fix bug with intersection which reverses the result lower and upper bound in the RangeKey\n* 0.2.1\n    * Rough completion of putCoalescing along with intersection and disjoint\n* 0.1.5\n    * Fix inclusive bugs in enclose and intersects functionality, add tests\n* 0.1.4\n    * Initial design and structuring, some basic functionality\n\n## Meta\n\nCharles Hunt – [Website](http://cornfluence.com) – charlesalberthunt@gmail.com\n\nDistributed under the MIT license. See ``LICENSE`` for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharlesahunt%2Frange-tree-map","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcharlesahunt%2Frange-tree-map","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcharlesahunt%2Frange-tree-map/lists"}