Skip to content

Releases: crates-lurey-io/ixy

v0.6.0-alpha.7

20 Jun 03:49

Choose a tag to compare

v0.6.0-alpha.7 Pre-release
Pre-release

Major redesign of Rect internal storage and API cleanup, laying groundwork for v1.0.

Added

  • Pos::cmp_lexicographic() — x-primary ordering (replaces old Ord behavior)
  • Rect::new(x, y, width, height) — primary constructor matching game framework convention
  • Rect::from_tl_size(Pos, Size) — renamed from Rect::new(Pos, Size)
  • Rect::width_usize() / Rect::height_usize() — for indexing use
  • Pos::cmp_row_major() — y-primary comparison for grid iteration
  • impl Display for Size — formats as 10×20
  • Type aliases: Pos16, PosI for positions, Rect16, RectI for rectangles
  • Optional serde feature (serde = ["dep:serde"])
  • cargo-semver-checks in CI
  • Block layout, which stores data in continuous fixed-size (W x H) blocks
  • AGENTS.md — guidelines for LLM contributors

Changed

  • Pos::Ord is now row-major (y-primary) instead of lexicographic (x-primary); use cmp_lexicographic() for the old behavior
  • Rect internal storage changed from (l, t, r, b) to (x, y, w, h) — all fields are T
  • Rect::width() and Rect::height() now return T (was usize)
  • Rect::from_ltrb_unchecked() is no longer unsafe — uses debug_assert!
  • Removed T: Int bound from Pos and Rect struct definitions (C-STRUCT-BOUNDS)
  • Rect::new(Pos, Size) renamed to Rect::from_tl_size(Pos, Size)
  • Layout has been split into 2 traits:
    • Layout for iterating over positions, rectangles, and elements
    • Linear for an (optional) optimization of linear-aligned data
  • Layouts are now &self instead of static-only, allowing for dynamic dispatch
  • License changed to MIT OR Apache-2.0 (was MIT)
  • Lint configuration aligned with rg: added rust.nursery, must_use_candidate, more

Removed

  • unsafe code from production codebase (forbid(unsafe_code))
  • AsRef / AsMut impls on Pos (depended on unsafe pointer casts)
  • Rect::iter_pos and related methods; use the layout traits instead
  • .gemini/GEMINI.md — replaced by AGENTS.md

v0.6.0-alpha.6

20 Jun 03:35

Choose a tag to compare

v0.6.0-alpha.6 Pre-release
Pre-release

Major redesign of Rect internal storage and API cleanup, laying groundwork for v1.0.

Added

  • Pos::cmp_lexicographic() — x-primary ordering (replaces old Ord behavior)
  • Rect::new(x, y, width, height) — primary constructor matching game framework convention
  • Rect::from_tl_size(Pos, Size) — renamed from Rect::new(Pos, Size)
  • Rect::width_usize() / Rect::height_usize() — for indexing use
  • Pos::cmp_row_major() — y-primary comparison for grid iteration
  • impl Display for Size — formats as 10×20
  • Type aliases: Pos16, PosI for positions, Rect16, RectI for rectangles
  • Optional serde feature (serde = ["dep:serde"])
  • cargo-semver-checks in CI
  • Block layout, which stores data in continuous fixed-size (W x H) blocks
  • AGENTS.md — guidelines for LLM contributors

Changed

  • Pos::Ord is now row-major (y-primary) instead of lexicographic (x-primary); use cmp_lexicographic() for the old behavior
  • Rect internal storage changed from (l, t, r, b) to (x, y, w, h) — all fields are T
  • Rect::width() and Rect::height() now return T (was usize)
  • Rect::from_ltrb_unchecked() is no longer unsafe — uses debug_assert!
  • Removed T: Int bound from Pos and Rect struct definitions (C-STRUCT-BOUNDS)
  • Rect::new(Pos, Size) renamed to Rect::from_tl_size(Pos, Size)
  • Layout has been split into 2 traits:
    • Layout for iterating over positions, rectangles, and elements
    • Linear for an (optional) optimization of linear-aligned data
  • Layouts are now &self instead of static-only, allowing for dynamic dispatch
  • License changed to MIT OR Apache-2.0 (was MIT)
  • Lint configuration aligned with rg: added rust.nursery, must_use_candidate, more

Removed

  • unsafe code from production codebase (forbid(unsafe_code))
  • AsRef / AsMut impls on Pos (depended on unsafe pointer casts)
  • Rect::iter_pos and related methods; use the layout traits instead
  • .gemini/GEMINI.md — replaced by AGENTS.md

v0.6.0-alpha.5

20 Jun 01:07

Choose a tag to compare

v0.6.0-alpha.5 Pre-release
Pre-release

Major redesign of Rect internal storage and API cleanup, laying groundwork for v1.0.

Added

  • Rect::new(x, y, width, height) — primary constructor matching game framework convention
  • Rect::from_tl_size(Pos, Size) — renamed from Rect::new(Pos, Size)
  • Rect::width_usize() / Rect::height_usize() — for indexing use
  • Pos::cmp_row_major() — y-primary comparison for grid iteration
  • impl Display for Size — formats as 10×20
  • Type aliases: Pos16, PosI for positions, Rect16, RectI for rectangles
  • Optional serde feature (serde = ["dep:serde"])
  • cargo-semver-checks in CI
  • Block layout, which stores data in continuous fixed-size (W x H) blocks
  • AGENTS.md — guidelines for LLM contributors

Changed

  • Rect internal storage changed from (l, t, r, b) to (x, y, w, h) — all fields are T
  • Rect::width() and Rect::height() now return T (was usize)
  • Rect::from_ltrb_unchecked() is no longer unsafe — uses debug_assert!
  • Removed T: Int bound from Pos and Rect struct definitions (C-STRUCT-BOUNDS)
  • Rect::new(Pos, Size) renamed to Rect::from_tl_size(Pos, Size)
  • Layout has been split into 2 traits:
    • Layout for iterating over positions, rectangles, and elements
    • Linear for an (optional) optimization of linear-aligned data
  • Layouts are now &self instead of static-only, allowing for dynamic dispatch
  • License changed to MIT OR Apache-2.0 (was MIT)
  • Lint configuration aligned with rg: added rust.nursery, must_use_candidate, more

Removed

  • unsafe code from production codebase (forbid(unsafe_code))
  • AsRef / AsMut impls on Pos (depended on unsafe pointer casts)
  • Rect::iter_pos and related methods; use the layout traits instead
  • .gemini/GEMINI.md — replaced by AGENTS.md