Skip to content

Latest commit

 

History

History
146 lines (86 loc) · 4.81 KB

File metadata and controls

146 lines (86 loc) · 4.81 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.4.5 - 2026-03-09

Fixed

  • (nearest-derive) add Flat bounds to unbounded type params in emit impl (#32)

0.4.4 - 2026-03-09

Added

  • add array emitter for [T; N] fields (#30)

0.4.3 - 2026-03-09

Other

  • deduplicate buffer operations between Emitter and Region (#28)

0.4.2 - 2026-03-08

Other

  • rewrite README with comprehensive examples and comparison (#26)

0.4.1 - 2026-03-08

Other

  • remove alloc dependency from Session list operations (#24)

0.4.0 - 2026-03-08

Other

  • use explicit near()/list()/maybe() wrappers for Emit builders (#21)

0.3.2 - 2026-03-08

Added

  • self-sufficient Near and NearList Flat impls (#18)

0.3.1 - 2026-02-15

Added

  • add consuming conversions for Region (#17)
  • add #[flat(into)] and #[flat(rename)] derive macro attributes (#16)
  • add collection methods to NearList and Session (#15)
  • implement Display for Near, NearList, and Region
  • add unsafe Region::from_bytes_unchecked() and from_buf_unchecked()
  • implement FusedIterator for NearListIter and add NearList::last
  • implement PartialEq and Eq for Region, Near, and NearList

Fixed

  • avoid raw byte comparison on types with enum padding in Miri tests

Other

  • fix crate version in README.md

0.3.0 - 2026-02-15

Added

  • add optional serde feature with Serialize/Deserialize for Region
  • [breaking] add Flat::validate with Region::as_bytes / Region::from_bytes

Fixed

  • mark pub(crate) functions with unsafe preconditions as unsafe fn
  • copy before validate in from_bytes to avoid double read

Other

  • document serialization, features, no_std and serde in lib.rs and README

0.2.1 - 2026-02-15

Fixed

  • correct swapped arrows in Region memory layout diagram

Other

  • add 5 real-world examples (expr, json, ecs, fs, fsm)

0.2.0 - 2026-02-15

Added

  • [breaking] add no_std support with Buf trait and FixedBuf<N>

Fixed

  • resolve broken doc links for no_std compatibility

Other

  • make README badges clickable links

0.1.2 - 2026-02-15

Other

  • rewrite lib.rs crate docs and README

0.1.1 - 2026-02-15

Other

  • update README badges for consistency and clarity
  • update README license badge for clarity
  • Fix CI badge
  • Update README badges: improve clarity and remove redundant links

0.1.0 - 2026-02-15

Initial release.

Added

  • Region<T>: owning contiguous byte buffer with root T at byte 0.
  • Near<T>: self-relative pointer stored as a 4-byte NonZero<i32> offset.
  • NearList<T>: segmented linked list with 8-byte header (offset + length).
  • Session API: branded mutable session using the ghost-cell pattern (for<'id>) preventing Ref tokens from escaping or crossing sessions.
  • Flat marker trait with #[derive(Flat)] for safe region-storable types.
  • Emit<T> builder trait with declarative tree-shaped region construction.
  • Region::trim for compaction of dead bytes after mutations.
  • Session operations: splice, splice_list, re_splice_list, map_list, filter_list, push_front, push_back, extend_list, graft.
  • Cursor API for fluent chained navigation and mutation.
  • Compile-fail tests verifying Ref escape prevention, cross-session safety, Drop rejection, enum repr requirements, and Flat field enforcement.
  • Miri validation with -Zmiri-permissive-provenance.