# 0.10.0

* Bump Oct version

# 0.9.0

* Add `oct` and `serde` features
* Implement `oct::serdes::Serialise` and `oct::serdes::Deserialise` for `NVec` and `NString`
* Implement `oct::serdes::MaxSerialisedSize` for `NVec` and `NString`
* Add `try_with_capacity` constructor to `NVec` and `NString`
* Update docs
* Implement `serde::Serialize` and `serde::Deserialize` for `NVec` and `NString`
* Implement `Extend` for `NVec` and `NString`
* Implement `FromIterator` for `NVec` and `NString`
* Implement `Write` for `NVec`
* Implement `TryFrom` with slices for `NVec`
* Add `try_from_slice` constructor to `NVec`
* Implement `Hash` for `NVec` and `NString`
* Fix `from_raw_parts` and `into_raw_parts` in `NVec` being private
* Add `push_unchecked_mut` method to `NVec`
* Add `try_extend` and `try_extend_from_slice` methods to `NVec`
* Update tests
* Add `try_extend` and `try_extend_str` methods to `NString`
* Add more `TryFrom` implementations for `NString`
* Rework `NVec::from_elem` to `try_from_elem`
* Rework `NVec::from_fn` as `try_from_fn`
* Remove `n_string::FromStrError`
* Rework `NString::from_str` as `try_from_str`
* Add `try_from_iter` method to `NString` and `NVec`
* Implement `oct::serdes::Write` for `NVec`
* Update package description

# 0.8.0

* Add `n_string` module
* Add `NString` type to `n_string`
* Update prelude
* Add `copied` method to `NVec`
* Implement `Clone` for `NVec`
* Implement `Debug` for `NVec`
* Add `clear` method to `NVec`
* Implement `AsRef`, `AsMut`, `Borrow`, and `BorrowMut` for `NVec`
* Add `FromUtf8Error` error type to `n_string`
* Add `into_boxed_slice` and `into_vec` destructors to `NVec`
* Add `from_raw_parts` constructor to `NVec`
* Add `into_raw_parts` destructor to `NVec`
* Implement `From<NVec>` for `Vec` and `Box<[_]>`
* Add `FromStrError` error type to `n_string`
* Implement `Eq` and `PartialEq` for `NVec`
* Add `spare_capacity_mut` method to `NVec`
* Add `try_resize`, `try_push`, and `try_push_mut` methods to `NVec`
* Add `TryReserveError` error type to `n_vec`
* Add `try_reserve` method to `NVec`
* Update tests
* Add `n_vec` macro
* Add `from_elem` constructor to `NVec`
* Fix unsoundness with `n_vec::IntoIter`
* Add `truncate` method to `NVec`
* Add `remaining_capacity` method to `NVec`

# 0.7.0

* Update docs
* Implement `Deref` and `DerefMut` for `NVec`
* Add `from_array` constructor to `NVec`
* Add `as_slice` and `as_mut_slice` methods to `NVec`
* Add `as_ptr` and `as_mut_ptr` methods to `NVec`
* Add `len`, `is_empty` `capacity` methods to `NVec`
* Add `map` method to `NVec`
* Add `from_fn` constructor to `NVec`
* Add `IntoIter` iterator type to `n_vec`
* Implement `IntoIterator` for `NVec`
* Implement `Drop` for `NVec`
* Implement `Index` and `IndexMut` for `NVec`
* Add `set_len` method to `NVec`
* Add tests
* Add prelude
* Reexport `NVec` into crate root

# 0.6.0

* Reformat changelog
* Rename project to nvec
* Rewrite project
* Add `n_vec` module
* Add `NVec` type to `n_vec`
* Add `new` constructor to `NVec`
* Add `alloc` and `str` features
* Add `unstable_docs` feature
* Implement `Default` for `NVec`

# 0.5.0

* Update docs
* Update signatures for `String::{from_utf8, from_utf8_unchecked}`
* Add `FromUtf8Error` error type
* Implement `From<FromUtf8Error>` for `oct::error::GenericDecodeError`
* Add `zerocopy` and `bytemuck` features
* Implement `zerocopy::{FromZeros, KnownLayout, Immutable}` for `String`
* Implement `bytemuck::{NoUninit, Zeroable}` for `String`
* Add `ceil_char_boundary` and `floor_char_boundary` methods to `String`
* Update tests
* Add `repeat` method to `String`
* Add `resize` method to `String`
* Fix `String::truncate` panicking on attempted extensions
* Update readme
* Clean up code

# 0.4.0

* Add `push`, `push_str`, `pop`, `insert`, `insert_str`, and `remove` methods to `String`
* Rename `String::new` and `String::new_unchecked` to `from_str` and `from_str_unchecked`
* Add new `String::new`
* Update lints
* Update tests
* Add `truncate` and `clear` methods to `String`

# 0.3.1

* Bump dependency versions
* Remove Serde test

# 0.3.0

* Make `alloc` and `std` default features
* Implement `From<LengthError>` and `From<Utf8Error>` for `oct::error::GenericDecodeError`
* Add readme

# 0.2.0

* Add `serde` feature
* Implement `Serialize` and `Deserialize` for `String`
* Update tests
* Add `split_at`, `split_at_mut`, `split_at_checked`, and `split_at_mut_checked` methods to `String`
* Add `is_ascii` method to `String`
* Add `make_ascii_uppercase` and `make_ascii_lowercase` methods to `String`
* Update docs

# 0.1.0

* Add `oct` feature
* Implement `Encode`, `Decode`, `SizedEncode`, and `DecodeBorrowed<str>` for `String`
* Update tests

# 0.0.0

* Add Cargo manifest
* Add changelog
* Add `String` type
* Add `alloc` and `std` features
* Add `string` macro
* Add `error` module
* Dual-license under MIT or Apache 2.0
* Configure lints
* Add gitignore
* Add `LengthError` and `Utf8Error` errors
* Add tests
* Add `new` and `from_utf8` constructors to `String`
* Add `new_unchecked`, `from_utf8_unchecked`, and `from_raw_parts` constructors to `String`
* Add `len` and `is_empty` methods to `String`
* Add `as_ptr`, `as_mut_ptr`, `as_bytes`, `as_bytes_mut`, `as_str` and `as_mut_str` methods to `String`
* Add `into_std_string`, `into_boxed_str`, and `into_raw_parts` destructors to `String`
* Implement `AsRef<str>`, `AsMut<str>`, `AsRef<[u8]>`, `AsRef<OsStr>`, and `AsRef<Path>` for `String`
* Implement `Borrow<str>` and `BorrowMut<str>` for `String`
* Implement `Deref` and `DerefMut` for `String`
* Implement `PartialOrd`, `Eq`, and `Ord` for `String`
* Implement `FromStr` for `String`
* Implement `ToSocketAddrs` for `String`
* Implement `TryFrom<char>`, `TryFrom<&str>`, and `TryFrom<alloc::string::String>` for `String`
* Implement `PartialEq<Self>`, `PartialEq<str>`, `PartialEq<&str>`, `PartialEq<Cow>`, and `PartialEq<alloc::string::String>` for `String`
* Implement `Default` for `String`
* Implement `Debug` and `Display` for `String`
* Implement `FromIterator<char>` for `String`
* Implement `Hash` for `String`
* Implement `Index` and `IndexMut` for `String`
* Implement `From<String>` for `alloc::string::String` and `Box<str>`
* Implement `PartialEq<String>` for `alloc::string::String`
* Add `is_char_boundary` method to `String`
* Implement `Clone` and `Copy` for `String`
