fffl 1.2.0

A contiguous First-fit Freelist
Documentation
# Changelog

All notable changes to this project will be 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).

## [Unreleased]
_


## [1.2.0] - 2025-06-13

### Added
- Function `Freelist::remove_unchecked` and related tests

## [1.1.0] - 2025-06-11

### Added
- Workflows for test coverage and Miri validation
- `is_value` function to `Slot` for use in `Freelist::compactify`

### Changed
- Updated README.md to use badges provided by Workflows
- Iterators to use while loops for better test coverage
- warmup times on benchmarks from 8 seconds to 3 seconds



## [1.0.0] - 2025-05-31

### Added
- this CHANGELOG.md
- Function, tests, and documentation for `Freelist::compactify`
- Custom iterators (`IterFl`, `IterMutFl`, `IntoIterFl`) for `Freelist` slices, including tests
- Performance benchmarking for `Freelist` functions `iter` and `into_iter`
- Added module-level iterator function `size_hint`

### Changed
- Updated README.md
- Moved iterators to separate modules
- Doubled perfomance of functions `iter` and `iter_mut` and `into_iter` for `Freelist` (switched to custom iterators)
- Improved documentation for Freelist functions:
    - `push` (clarified that freelist returns the insertion index)
    - `next_available` (added examples)
    - `to_vec` (added examples)
    - `iter` (example now demonstrates skipping over empty slots)
    - `iter_mut` (example now demonstrates skipping over empty slots)
    - `index` (Notifies of possible panic conditions)
    - `index_mut` (Notifies of possible panic conditions)

### Removed
- FreelistIter struct (replaced by `IntoIterFl`)


## [0.9.4] - 2025-05-29

### Added
- LICENSE.md
- README.md badges
- Categories section to Cargo.toml

### Removed
- README.md links for sources

### Fixed
- README.md code-snippets now correctly identify as Rust code


## [0.9.3] - 2025-05-29
Yanked.  See [0.9.4]

## [0.9.2] - 2025-05-29

### Added

- Tests:
    - `with_capacity`
    - `to_vec`
    - `reserve`
    - `filled`
    - `size`
    - `free`
    - `get`
    - `get_mut`
    - `get_unchecked`
    - `get_unchecked_mut`
    - `iter`
    - `iter_mut`
    - `default`
    - `index`
    - `index_mut`
    - `from_vec`
    - `from_iter`
    - `double_ended_iter`

- Functions and documentation for Freelist:
    - `capacity`
    - `to_vec`
    - `with_capacity`

- Documentation for Freelist:
    - `new`
    - `default`
    - `index`
    - `index_mut`
    
### Changed
- Restructured project, separating `Freelist`, its IntoIter implementation, and `Slot`
- Improved README.md
- Expanded documentation for Freelist:
    - `push`
    - `next_available`
    - `remove`
    - `filled`
    - `size`
    - `free`
    - `get`
    - `get_mut`
    - `get_unchecked`
    - `get_unchecked_mut`
    - `iter`
    - `iter_mut`


## [0.9.1] - 2025-05-29

### Added
- New functions for `Slot` 
    - `to_some_unchecked`
    - `as_value_unchecked`
    - `as_value_unchecked_mut`

### Changed
- Struct `Container` changed name to `Slot`
- Field names for `Freelist`
- Improved `remove` function performance for `Freelist`

## [0.9.0] - 2025-05-22

### Initial Release

### Added
- Initial implementation details

### Changed
- `FreeList` became `Freelist`

### Removed
- Comparison implementation
- Removed comparison implementation from benchmarks