# Changelog
All notable changes to this project will be documented in this file.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## cordyceps-v0.3.2 - (2023-06-26)
[192e3e4](https://github.com/hawkw/mycelium/192e3e4dd9794fe9c4573c9bf3602f331b291c97)...[5e46e35](https://github.com/hawkw/mycelium/5e46e35cae131d5f60f527e6659dc53b18e30ebb)
### Added
- Add utilities for work-stealing ([#322](https://github.com/hawkw/mycelium/issues/322)) ([5283cf9](https://github.com/hawkw/mycelium/5283cf9960f79d6c067b192449616396f89dc554))
- Add `Stack` and `TransferStack` ([#434](https://github.com/hawkw/mycelium/issues/434)) ([507b993](https://github.com/hawkw/mycelium/507b993eb50c5f83f2a43399d9e48f1b448aa297), closes [#137](https://github.com/hawkw/mycelium/issues/137))
### Documented
- Fix wrong footnote rendering ([#317](https://github.com/hawkw/mycelium/issues/317)) ([819017c](https://github.com/hawkw/mycelium/819017c0004b68b09dad34c5bbfdf82914fdccbe))
- Add link to inconsistent states in error ([#317](https://github.com/hawkw/mycelium/issues/317)) ([667c089](https://github.com/hawkw/mycelium/667c0894bc976ffe36eabf0967fe3395085996ad))
- `MpscQueue` doc formatting fixup ([#317](https://github.com/hawkw/mycelium/issues/317)) ([78a104c](https://github.com/hawkw/mycelium/78a104cbe29a55f054b8d2fe7b5a7293dafc7f35))
- Remove unneeded `#[repr(C)]` in examples ([#317](https://github.com/hawkw/mycelium/issues/317)) ([d37ec8c](https://github.com/hawkw/mycelium/d37ec8c2d8f968e44b07a1be708f794f5636f6d8))
- Fix typos in `List` and `Linked` docs ([#385](https://github.com/hawkw/mycelium/issues/385)) ([678d469](https://github.com/hawkw/mycelium/678d4692e7d003b9dcfa19acd65814984b3912a6))
- Fix wrong time complexity notes ([#430](https://github.com/hawkw/mycelium/issues/430)) ([787f702](https://github.com/hawkw/mycelium/787f702f8ac4d1420cc9ac27d93c0217beace937), fixes [#429](https://github.com/hawkw/mycelium/issues/429))
- Add nicer "Returns" sections ([#430](https://github.com/hawkw/mycelium/issues/430)) ([3548032](https://github.com/hawkw/mycelium/354803239df5a4af7873994f5055754e9e360d21))
### Fixed
- Remove `let ... else` syntax ([#373](https://github.com/hawkw/mycelium/issues/373)) ([5f36a6c](https://github.com/hawkw/mycelium/5f36a6cf6ef81763a927ee07f0c142c1704850a6))
### Refac
- @cratelyn-ify manual `fmt::Debug` impls ([#330](https://github.com/hawkw/mycelium/issues/330)) ([192acab](https://github.com/hawkw/mycelium/192acab3bae4d02ee11c179064d2c165131ca1af))
### Style
- Use `let`-`else` in a few places ([#335](https://github.com/hawkw/mycelium/issues/335)) ([d7d07cb](https://github.com/hawkw/mycelium/d7d07cb1afc1ce7b98f887d21badf25e23d8d9e0))
- Fix clippy format inlining lint ([#390](https://github.com/hawkw/mycelium/issues/390)) ([30b83e0](https://github.com/hawkw/mycelium/30b83e02b1cc9647f4a0a54dfccc79c727e7f1f1))
- Use inlined format args ([#391](https://github.com/hawkw/mycelium/issues/391)) ([43d29de](https://github.com/hawkw/mycelium/43d29de9d883a269389db91be9c224fdd518879a))
- Rustfmt ([5e46e35](https://github.com/hawkw/mycelium/5e46e35cae131d5f60f527e6659dc53b18e30ebb))
## cordyceps-v0.3.1 - (2022-09-13)
[62b7ee5](https://github.com/hawkw/mycelium/62b7ee5f7080d7843a0785be73977124590be526)...[192e3e4](https://github.com/hawkw/mycelium/192e3e4dd9794fe9c4573c9bf3602f331b291c97)
### Added
- Assert list is nonempty in remove ([#247](https://github.com/hawkw/mycelium/issues/247)) ([d697b8e](https://github.com/hawkw/mycelium/d697b8e3d91321a21cc7058c6b59ec78f05e4951))
- Add by-value `IntoIterator` impl for `List` ([#314](https://github.com/hawkw/mycelium/issues/314)) ([a0c5fb8](https://github.com/hawkw/mycelium/a0c5fb8d438f4250f00b449ebff231bab262d8d9))
- Add `FusedIterator` impls for `List` iterators ([#315](https://github.com/hawkw/mycelium/issues/315)) ([06179e2](https://github.com/hawkw/mycelium/06179e2855e9b91c7abbe2c15fe319ecbce1af36))
### Documented
- Use `ptr::addr_of_mut!` instead of casts ([#258](https://github.com/hawkw/mycelium/issues/258)) ([6e2a04c](https://github.com/hawkw/mycelium/6e2a04cdc4996b9b896583c7d4c12fa4fe1b190c))
### Fixed
- Make assertion less aggressive ([c336a47](https://github.com/hawkw/mycelium/c336a47b4787395516535841baaec6898155670a))
- Correctly cfg-gate debug assertions ([23db951](https://github.com/hawkw/mycelium/23db951d19cf410e07ed4c2c47ead20d2b592d21))
## cordyceps-v0.3.0 - (2022-06-25)
[f956111](https://github.com/hawkw/mycelium/f9561111fceead952261355594fa46e9027ca8dd)...[62b7ee5](https://github.com/hawkw/mycelium/62b7ee5f7080d7843a0785be73977124590be526)
### <a id = "cordyceps-v0.3.0-breaking"></a>Breaking Changes
- **Remove deprecated `Cursor` type alias ([#239](https://github.com/hawkw/mycelium/issues/239))** ([b4fcb16](b4fcb160214b2d44b5c740e4eb3c666fcd8dec3d))<br />This removes the `Cursor` type from `cordyceps::list`.
- **Remove deprecated `List::cursor` method ([#239](https://github.com/hawkw/mycelium/issues/239))** ([2e35a4b](2e35a4b82d5b5faa2ebfcefdf8a94885b32c3a99))<br />This removes the `List::cursor` method from `cordyceps::List`.
- **Pin `CursorMut` iterator `Item`s ([#240](https://github.com/hawkw/mycelium/issues/240))** ([5ee31ce](5ee31cee2312639800f27358e2ea1b41481d185e))<br />This changes the type signature of the `Iterator` impl for
### Added
- [**breaking**](#cordyceps-v0.3.0-breaking) Remove deprecated `Cursor` type alias ([#239](https://github.com/hawkw/mycelium/issues/239)) ([b4fcb16](https://github.com/hawkw/mycelium/b4fcb160214b2d44b5c740e4eb3c666fcd8dec3d))
- [**breaking**](#cordyceps-v0.3.0-breaking) Remove deprecated `List::cursor` method ([#239](https://github.com/hawkw/mycelium/issues/239)) ([2e35a4b](https://github.com/hawkw/mycelium/2e35a4b82d5b5faa2ebfcefdf8a94885b32c3a99))
- Add immutable `list::Cursor` type ([#241](https://github.com/hawkw/mycelium/issues/241)) ([5af5d48](https://github.com/hawkw/mycelium/5af5d488e431c004d7496237aac39fb0572eb137))
- Add `CursorMut::as_cursor` ([#244](https://github.com/hawkw/mycelium/issues/244)) ([2a7ce9c](https://github.com/hawkw/mycelium/2a7ce9cc2fcda1808f327253092a5e8309aa882a))
### Fixed
- [**breaking**](#cordyceps-v0.3.0-breaking) Pin `CursorMut` iterator `Item`s ([#240](https://github.com/hawkw/mycelium/issues/240)) ([5ee31ce](https://github.com/hawkw/mycelium/5ee31cee2312639800f27358e2ea1b41481d185e))
## cordyceps-v0.2.2 - (2022-06-21)
[7cdb821](https://github.com/hawkw/mycelium/7cdb82146fdddfa564d0ba78536da0b7579a63e0)...[f956111](https://github.com/hawkw/mycelium/f9561111fceead952261355594fa46e9027ca8dd)
### Added
- Add `Cursor::current` ([#227](https://github.com/hawkw/mycelium/issues/227)) ([9edf815](https://github.com/hawkw/mycelium/9edf81534f68d59e656a9ea897c1aa058dcf5d61), closes [#224](https://github.com/hawkw/mycelium/issues/224))
- Add `Cursor::peek_next/peek_prev` ([#227](https://github.com/hawkw/mycelium/issues/227)) ([7ae435b](https://github.com/hawkw/mycelium/7ae435bab55736e4282e10203ce97abec6fb8fa1), closes [#224](https://github.com/hawkw/mycelium/issues/224))
- Add `Cursor::move_next/move_prev` ([2c9e972](https://github.com/hawkw/mycelium/2c9e9720e8270716631b23eb99e06f993c064e95))
- Add `Cursor::remove_current` ([#227](https://github.com/hawkw/mycelium/issues/227)) ([ed587ee](https://github.com/hawkw/mycelium/ed587eecd0e19e83d7233a8ba33120fe89e4b4e2), closes [#224](https://github.com/hawkw/mycelium/issues/224))
- Add `List::cursor_back_mut` ([#227](https://github.com/hawkw/mycelium/issues/227)) ([b555204](https://github.com/hawkw/mycelium/b5552046a65ce017d751acde3cee54d95726cf4c), closes [#224](https://github.com/hawkw/mycelium/issues/224))
- Add `Cursor::index` ([#227](https://github.com/hawkw/mycelium/issues/227)) ([f5652cd](https://github.com/hawkw/mycelium/f5652cdd02764321aea19bf12d2a8730604159ca), closes [#224](https://github.com/hawkw/mycelium/issues/224))
- Add `Cursor::insert_before/after` ([#227](https://github.com/hawkw/mycelium/issues/227)) ([5d97b41](https://github.com/hawkw/mycelium/5d97b4193829d89d246bc20b2d50cb6daba331e0), closes [#224](https://github.com/hawkw/mycelium/issues/224))
- Add `iter::Extend` for `List` ([#232](https://github.com/hawkw/mycelium/issues/232)) ([1c59f93](https://github.com/hawkw/mycelium/1c59f93a95b0ab8a806f29e948b2a7de640b26cf), closes [#225](https://github.com/hawkw/mycelium/issues/225))
- Add `iter::FromIterator` for `List` ([#232](https://github.com/hawkw/mycelium/issues/232)) ([d9bec37](https://github.com/hawkw/mycelium/d9bec377c84e14068445523395d06b107c36d7dc), closes [#226](https://github.com/hawkw/mycelium/issues/226))
- Add `List::append` ([#233](https://github.com/hawkw/mycelium/issues/233)) ([0a0fd42](https://github.com/hawkw/mycelium/0a0fd420b0047008cc5bab0d6451054a4757ce20))
- Add `List::split_off`/`try_split_off` ([#233](https://github.com/hawkw/mycelium/issues/233)) ([48167ce](https://github.com/hawkw/mycelium/48167ce50d9b4174b4783ff32f226ff9386deb78))
- Add `Cursor::split_before`/`after` ([#233](https://github.com/hawkw/mycelium/issues/233)) ([1093c36](https://github.com/hawkw/mycelium/1093c36bc5bc9aaf46ac0041fb947431b8cad461))
- Add `Cursor::splice_before/after` ([#234](https://github.com/hawkw/mycelium/issues/234)) ([cd73585](https://github.com/hawkw/mycelium/cd735857da9e0e00bac3eb67a9e294c55df4f99c))
### Deprecated
- Rename `cursor` to `cursor_front_mut` ([#227](https://github.com/hawkw/mycelium/issues/227)) ([d41c0cd](https://github.com/hawkw/mycelium/d41c0cd98355eea687ca4d2b82e729f05546e096))
- Include deprecations in changelog ([#235](https://github.com/hawkw/mycelium/issues/235)) ([95d0ade](https://github.com/hawkw/mycelium/95d0ade3c3faed2d393d1e8d00495ad3284143d3))
- Rename `list::Cursor` to `CursorMut` ([#236](https://github.com/hawkw/mycelium/issues/236)) ([3035be4](https://github.com/hawkw/mycelium/3035be4fef6ca619c2800cd4c22ae39fbef7b4ee))
### Documented
- Improve `List` and `CursorMut` docs ([#237](https://github.com/hawkw/mycelium/issues/237)) ([7504b88](https://github.com/hawkw/mycelium/7504b88ecd97683f1e22132b2822aabcee487d1a))
### Fixed
- Missing `len` in `List` debug impl ([#233](https://github.com/hawkw/mycelium/issues/233)) ([dc926e3](https://github.com/hawkw/mycelium/dc926e39757c4e5e07b1900527541010a61c9881))
- Wrong `Cursor::split_before` behavior ([#234](https://github.com/hawkw/mycelium/issues/234)) ([5e3583c](https://github.com/hawkw/mycelium/5e3583c387ca31d7a0703908cbefe31c1b81293d))
## cordyceps-v0.2.1 - (2022-06-10)
[e3fe8f8](https://github.com/hawkw/mycelium/e3fe8f84212fa5c4ac5865d36a3cad9267c98c7c)...[7cdb821](https://github.com/hawkw/mycelium/7cdb82146fdddfa564d0ba78536da0b7579a63e0)
### Added
- `DoubleEndedIterator` for `List` ([#207](https://github.com/hawkw/mycelium/issues/207)) ([a9c4f1b](https://github.com/hawkw/mycelium/a9c4f1b0697a9fcda834d550ef6f2bc34dc14a02))
- Impl `ExactSizeIterator` for `List` ([#208](https://github.com/hawkw/mycelium/issues/208)) ([a5e6814](https://github.com/hawkw/mycelium/a5e681415d7a43f4facd5f9b89d9b36f220a3a71))
- Add `list::IterMut` ([#208](https://github.com/hawkw/mycelium/issues/208)) ([f5d6ea1](https://github.com/hawkw/mycelium/f5d6ea1e65ef4f10dc256555be0ceafba7639cb0))
- Impl `IntoIterator` for `List` ([#208](https://github.com/hawkw/mycelium/issues/208)) ([1e95127](https://github.com/hawkw/mycelium/1e9512700d9f4635eb5e704f48defb6e3cce448a))
- Add `List::{front, back, front_mut, back_mut}` ([#211](https://github.com/hawkw/mycelium/issues/211)) ([f120827](https://github.com/hawkw/mycelium/f12082763bb18b4622b8de95a31b23432b904d69))
- Add `List::drain_filter` ([#212](https://github.com/hawkw/mycelium/issues/212)) ([dc2e638](https://github.com/hawkw/mycelium/dc2e638e056e183ac6eedfa7b821393f5447ba45))
### Fixed
- Pin `list::IterMut` items ([#209](https://github.com/hawkw/mycelium/issues/209)) ([2e5a270](https://github.com/hawkw/mycelium/2e5a270235fc6a31efe61f61c128463b96ab02a2))
## cordyceps-v0.2.0 - (2022-06-07)
[cae707e](https://github.com/hawkw/mycelium/cae707ea55a5a755e4eafbbce2cee1fd8751e212)...[e3fe8f8](https://github.com/hawkw/mycelium/e3fe8f84212fa5c4ac5865d36a3cad9267c98c7c)
### <a id = "cordyceps-v0.2.0-breaking"></a>Breaking Changes
- **Fix use-after-free in `List` iterators ([#203](https://github.com/hawkw/mycelium/issues/203))** ([1eea1f2](1eea1f2290f0a858851a1fcb39d6d95c7b51cf37))<br />This changes the type signature of the `list::Iter` and `list::Cursor`
types.
- **Add `Drop` impl for `List` ([#203](https://github.com/hawkw/mycelium/issues/203))** ([ea7412a](ea7412ac2d7b31e98d8a69390db7a5b975569d90))<br />The `List::new` constructor now requires a `T: Linked<list::Links<T>>`
bound.
### Added
- Add `List::len` method ([#204](https://github.com/hawkw/mycelium/issues/204)) ([e286c61](https://github.com/hawkw/mycelium/e286c61f642dc9601f83edf2c33a1dd7d1637447))
### Fixed
- [**breaking**](#cordyceps-v0.2.0-breaking) Fix use-after-free in `List` iterators ([#203](https://github.com/hawkw/mycelium/issues/203)) ([1eea1f2](https://github.com/hawkw/mycelium/1eea1f2290f0a858851a1fcb39d6d95c7b51cf37))
- [**breaking**](#cordyceps-v0.2.0-breaking) Add `Drop` impl for `List` ([#203](https://github.com/hawkw/mycelium/issues/203)) ([ea7412a](https://github.com/hawkw/mycelium/ea7412ac2d7b31e98d8a69390db7a5b975569d90), fixes [#165](https://github.com/hawkw/mycelium/issues/165))
## cordyceps-v0.1.1 - (2022-06-06)
[8fe36c4](https://github.com/hawkw/mycelium/8fe36c49d724e77711e42717044832c45db3ed34)...[cae707e](https://github.com/hawkw/mycelium/cae707ea55a5a755e4eafbbce2cee1fd8751e212)
### Added
- Added new push_back and pop_front methods to list ([#198](https://github.com/hawkw/mycelium/issues/198)) ([c555772](https://github.com/hawkw/mycelium/c555772adf1ac6a58f0039a0ac9c8dea8b0bd38b), closes [#186](https://github.com/hawkw/mycelium/issues/186))
### Documented
- Add basic linked list examples ([#200](https://github.com/hawkw/mycelium/issues/200)) ([05c1509](https://github.com/hawkw/mycelium/05c15096db926675fb5453ecde711fa90b446849))
- Point README links at docs.rs ([#202](https://github.com/hawkw/mycelium/issues/202)) ([f0f2748](https://github.com/hawkw/mycelium/f0f27480793c2ce61d4057dbad3913de14830324))
## cordyceps-v0.1.0 - (2022-06-04)
### Added
- Add lock-free intrusive MPSC queue ([#136](https://github.com/hawkw/mycelium/issues/136)) ([b5d7d19](https://github.com/hawkw/mycelium/b5d7d191d86554bc1c04ddb229b29ffd6fc346ac))
- Initial working async executor ([#155](https://github.com/hawkw/mycelium/issues/155)) ([e1f5e12](https://github.com/hawkw/mycelium/e1f5e12d1f3f5a4bd40339e007649c223de692f7))
- Add cache padding inhibitor feature ([#161](https://github.com/hawkw/mycelium/issues/161)) ([bae38c7](https://github.com/hawkw/mycelium/bae38c78c506971c3d6d2d80fc2263e20f1965c3))
- Unsafe `MpscQueue` const constructor ([#163](https://github.com/hawkw/mycelium/issues/163)) ([7a3cede](https://github.com/hawkw/mycelium/7a3cede678be7467c79047b7f93bdbf5ff3f5d3a))
### Documented
- Fix broken links, add netlify config ([#144](https://github.com/hawkw/mycelium/issues/144)) ([d2dae58](https://github.com/hawkw/mycelium/d2dae5859cfafc903d10e7e4148ded381b1e88b4))
- Improve MPSC queue docs ([#160](https://github.com/hawkw/mycelium/issues/160)) ([3126dab](https://github.com/hawkw/mycelium/3126dabe4c3ddc52319007e153bfa325cd594be2))
- Fix typo: incosistent -> inconsistent ([#162](https://github.com/hawkw/mycelium/issues/162)) ([3ba91ae](https://github.com/hawkw/mycelium/3ba91aef42372986a1c1edde499cfef51980b4ad))
- Improve `maitake` & `cordyceps` documentation ([#195](https://github.com/hawkw/mycelium/issues/195)) ([2c05e9e](https://github.com/hawkw/mycelium/2c05e9ecc9aaa061ab86569587529aa17a92e23a))
### Fixed
- Add miri tests, fix stacked borrows ([#139](https://github.com/hawkw/mycelium/issues/139)) ([3a30fbd](https://github.com/hawkw/mycelium/3a30fbd59ff84db6d802849516d79f64f0b68371))
- Fix MPSC queue doctests ([#164](https://github.com/hawkw/mycelium/issues/164)) ([6b281fc](https://github.com/hawkw/mycelium/6b281fc31e2ffcf29b844d7020a30518378cee76))