1# Changelog 2 3The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 4and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 5 6## [1.1.6] - 2023-07-11 7 8### Added 9 10- Implement `Deserialize` for `Box<Utf8Path>`. 11 12## [1.1.5] - 2023-07-11 13 14(This release was not published due to an internal issue.) 15 16## [1.1.4] - 2023-03-09 17 18### Added 19 20- Implement `DerefMut` for `Utf8PathBuf` on Rust 1.68 and above. 21 22## [1.1.3] - 2023-02-21 23 24### Added 25 26- New method `Utf8DirEntry::into_path` to return an owned `Utf8PathBuf`. 27 28## [1.1.2] - 2022-08-12 29 30### Added 31 32- New convenience methods [`FromPathBufError::into_io_error`] and 33 [`FromPathError::into_io_error`]. 34 35## [1.1.1] - 2022-08-12 36 37### Fixed 38 39- Fixed a build regression on older nightlies in the 1.63 series 40 ([#22](https://github.com/camino-rs/camino/issues/22)). 41- Documentation fixes. 42 43## [1.1.0] - 2022-08-11 44 45### Added 46 47- New methods, mirroring those in recent versions of Rust: 48 - `Utf8Path::try_exists` checks whether a path exists. Note that while `std::path::Path` only provides this method for Rust 1.58 and above, `camino` backfills the method for all Rust versions it supports. 49 - `Utf8PathBuf::shrink_to` shrinks a `Utf8PathBuf` to a given size. This was added in, and is gated on, Rust 1.56+. 50 - `Utf8PathBuf::try_reserve` and `Utf8PathBuf::try_reserve_exact` implement fallible allocations. These were added in, and are gated on, Rust 1.63+. 51- A number of `#[must_use]` annotations to APIs, mirroring those added to `Path` and `PathBuf` in recent versions of Rust. The minor version bump is due to this change. 52 53## [1.0.9] - 2022-05-19 54 55### Fixed 56 57- Documentation fixes. 58 59## [1.0.8] - 2022-05-09 60 61### Added 62 63- New methods `canonicalize_utf8`, `read_link_utf8` and `read_dir_utf8` return `Utf8PathBuf`s, erroring out if a resulting path is not valid UTF-8. 64- New feature `proptest1` introduces proptest `Arbitrary` impls for `Utf8PathBuf` and 65 `Box<Utf8Path>` ([#18], thanks [mcronce](https://github.com/mcronce) for your first contribution!) 66 67[#18]: https://github.com/camino-rs/camino/pull/18 68 69## [1.0.7] - 2022-01-16 70 71### Added 72 73- `Utf8Path::is_symlink` checks whether a path is a symlink. Note that while `std::path::Path` only 74 provides this method for version 1.58 and above, `camino` backfills the method for all Rust versions 75 it supports. 76 77### Changed 78 79- Update repository links to new location [camino-rs/camino](https://github.com/camino-rs/camino). 80- Update `structopt` example to clap 3's builtin derive feature. 81 (camino continues to work with structopt as before.) 82 83## [1.0.6] - 2022-01-16 84 85(This release was yanked due to a publishing issue.) 86 87## [1.0.5] - 2021-07-27 88 89### Added 90 91- `Utf8PathBuf::into_std_path_buf` converts a `Utf8PathBuf` to a `PathBuf`; equivalent to the 92 `From<Utf8PathBuf> for PathBuf` impl, but may aid in type inference. 93- `Utf8Path::as_std_path` converts a `Utf8Path` to a `Path`; equivalent to the 94 `AsRef<&Path> for &Utf8Path` impl, but may aid in type inference. 95 96## [1.0.4] - 2021-03-19 97 98### Fixed 99 100- `Hash` impls for `Utf8PathBuf` and `Utf8Path` now match as required by the `Borrow` contract ([#9]). 101 102[#9]: https://github.com/camino-rs/camino/issues/9 103 104## [1.0.3] - 2021-03-11 105 106### Added 107 108- `TryFrom<PathBuf> for Utf8PathBuf` and `TryFrom<&Path> for &Utf8Path`, both of which return new error types ([#6]). 109- `AsRef<Utf8Path>`, `AsRef<Path>`, `AsRef<str>` and `AsRef<OsStr>` impls for `Utf8Components`, `Utf8Component` and 110 `Iter`. 111 112[#6]: https://github.com/camino-rs/camino/issues/6 113 114## [1.0.2] - 2021-03-02 115 116### Added 117 118- `From` impls for converting a `&Utf8Path` or a `Utf8PathBuf` into `Box<Path>`, `Rc<Path>`, `Arc<Path>` and `Cow<'a, Path>`. 119- `PartialEq` and `PartialOrd` implementations comparing `Utf8Path` and `Utf8PathBuf` with `Path`, `PathBuf` and its 120 variants, and comparing `OsStr`, `OsString` and its variants. 121 122## [1.0.1] - 2021-02-25 123 124### Added 125 126- More `PartialEq` and `PartialOrd` implementations. 127- MSRV lowered to 1.34. 128 129## [1.0.0] - 2021-02-23 130 131Initial release. 132 133[1.1.6]: https://github.com/camino-rs/camino/releases/tag/camino-1.1.6 134[1.1.5]: https://github.com/camino-rs/camino/releases/tag/camino-1.1.5 135[1.1.4]: https://github.com/camino-rs/camino/releases/tag/camino-1.1.4 136[1.1.3]: https://github.com/camino-rs/camino/releases/tag/camino-1.1.3 137[1.1.2]: https://github.com/camino-rs/camino/releases/tag/camino-1.1.2 138[1.1.1]: https://github.com/camino-rs/camino/releases/tag/camino-1.1.1 139[1.1.0]: https://github.com/camino-rs/camino/releases/tag/camino-1.1.0 140[1.0.9]: https://github.com/camino-rs/camino/releases/tag/camino-1.0.9 141[1.0.8]: https://github.com/camino-rs/camino/releases/tag/camino-1.0.8 142[1.0.7]: https://github.com/camino-rs/camino/releases/tag/camino-1.0.7 143[1.0.6]: https://github.com/camino-rs/camino/releases/tag/camino-1.0.6 144[1.0.5]: https://github.com/camino-rs/camino/releases/tag/camino-1.0.5 145[1.0.4]: https://github.com/camino-rs/camino/releases/tag/camino-1.0.4 146[1.0.3]: https://github.com/camino-rs/camino/releases/tag/camino-1.0.3 147[1.0.2]: https://github.com/camino-rs/camino/releases/tag/camino-1.0.2 148[1.0.1]: https://github.com/camino-rs/camino/releases/tag/camino-1.0.1 149[1.0.0]: https://github.com/camino-rs/camino/releases/tag/camino-1.0.0 150