range-cmp 1.0.0

Trait that allows comparing a value to a range of values
Documentation
# Changelog

All notable changes to this project are documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.0] - 2026-06-11

First stable release. The public API (`RangeOrd`/`rcmp`, `PartialRangeOrd`/
`partial_rcmp`, `RangeOrdering`, `RangePosition`, `BoundOrdering`, `BorrowRange`) is
now considered stable and will follow SemVer.

### Added

- The crate is now `#![no_std]`. It has no dependencies and relies only on `core`,
  so it can be used in embedded and other environments without the standard library.
- Cargo manifest metadata for crates.io: `keywords`, `categories`, `rust-version`,
  and `readme`.

### Changed

- Lowered the MSRV to **1.35** (the floor of the `RangeBounds` API) by switching to
  edition 2018 and avoiding later-stabilized conveniences (nested or-patterns,
  the `matches!` macro, and the `f64::NAN` associated constant). No API changes.

## [0.3.0]

### Changed

- **Breaking:** reworked the comparison semantics to handle empty ranges explicitly
  and to be honest about partial orders.
- **Breaking:** renamed the `range_cmp` method to `rcmp` and the `RangeComparable`
  trait to `RangeOrd`.

### Added

- `RangeOrdering::Empty`: empty and inverted ranges (such as `45..35` or `0..0`) are
  now reported explicitly instead of returning an arbitrary, representation-dependent
  verdict. Emptiness is judged from the bounds (so `..0u32` is non-empty). Resolves
  [#6]https://github.com/Akvize/range-cmp/issues/6.
- `PartialRangeOrd` trait with a `partial_rcmp` method for types that are `PartialOrd`
  but not `Ord`.
- `RangePosition` (the pair of a value's relationships to the lower and upper bounds,
  with `is_inside` and `ordering` helpers) and `BoundOrdering`
  (`Within` / `Outside` / `Incomparable`), which preserve per-bound information over
  partial orders.

## [0.2.0]

### Changed

- **Breaking:** comparison now first checks whether the range contains the value.

## [0.1.3]

Initial published releases (`0.1.0` through `0.1.3`).

[1.0.0]: https://github.com/Akvize/range-cmp/releases/tag/v1.0.0
[0.3.0]: https://github.com/Akvize/range-cmp/compare/v0.2.0...v0.3.0
[0.2.0]: https://github.com/Akvize/range-cmp/compare/v0.1.3...v0.2.0
[0.1.3]: https://github.com/Akvize/range-cmp/releases/tag/v0.1.3