Expand description
Maven version range parsing and containment (Maven versioning spec).
§Why this is hand-rolled
No maintained Rust crate implements Maven’s interval-notation range grammar. Unlike
NuGet (deps-nuget), Maven ranges may be a top-level comma-separated union of intervals
((,1.0),(1.2,)), so this module owns the union-splitting; each individual interval is
parsed and matched by crate::interval, shared with deps-gradle, which has the same
bracket-interval grammar but no top-level union.
A bare (non-bracketed) requirement such as "1.0" is Maven’s “soft” recommended version,
not a range, and is intentionally not handled here — see is_range.