ripytide
ripytide
An alternative to using features would be define a trait for every method of that takes a range as input, then define two different types `PanicOnEmptyRangeMap` and `IgnoreEmptyRangeMap` that implement...
Yeah that seems like the cleanest solution. I think I might implement that for `nodit` as well.
Although for consistency shouldn't all the other methods that take ranges also now return results? Like `overlapping()`, `overlaps()`, `remove()` and `gaps()`? In which case you might not be able to...
I think it's needed for the `insert()` method to decide whether to coalesce adjacent or overlapping ranges. Which doesn't apply to `BTreeMap` or `HashMap`.
You could indeed have a valid range map even if the value doesn't implement `Eq` [range_bounds_map](https://docs.rs/range_bounds_map) allows this for example.
Alternatively, an option 4. might be to have multiple insert functions depending on the required coalescing. (This is what [RangeBoundsMap](https://docs.rs/range_bounds_map) does)
Summary of Changes: - Simplified the `Backend` trait to the four fundamental methods and five associated types. - Switched the `Packages` type to statically typed variations `PackagesIds`, `PackagesInstall`, `PackagesRemove` and...
@InnocentZero I consider the PR done and ready for review. The tests pass on my machine but fail in CI due to CI currently expecting the `arch` and `debian` feature...
Ah interesting, I didn't realize the two dependencies had non-rust build dependencies. In which case I can see three options: 1. Make the two dependencies optional again 2. Keep the...
I'd be happy with any of the options, but I think I prefer option 3 the most.