# Changelog All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. ## [0.19.0](https://github.com/toad-lib/toad/compare/toad-msg-v0.18.1...toad-msg-v0.19.0) (2023-05-11) ### Features * bump toad-array ([#347](https://github.com/toad-lib/toad/issues/347)) ([f417dd4](https://github.com/toad-lib/toad/commit/f417dd4e54a652616a10d7601b65c55d99755124)) ## [0.18.1](https://github.com/toad-lib/toad/compare/toad-msg-v0.18.0...toad-msg-v0.18.1) (2023-03-27) ### Bug Fixes * block should not be included in cache key ([#272](https://github.com/toad-lib/toad/issues/272)) ([d76c44e](https://github.com/toad-lib/toad/commit/d76c44efb9b965c526a669d1e2766fea96a61780)) ## [0.18.0](https://github.com/toad-lib/toad/compare/toad-msg-v0.17.1...toad-msg-v0.18.0) (2023-03-26) ### Features * add CacheKey capability to toad-msg ([#270](https://github.com/toad-lib/toad/issues/270)) ([c4cd9c9](https://github.com/toad-lib/toad/commit/c4cd9c9a3afa672341f588eef1c957b231d8579d)) ## [0.17.1](https://github.com/toad-lib/toad/compare/toad-msg-v0.17.0...toad-msg-v0.17.1) (2023-03-20) ### Bug Fixes * size2 ([#268](https://github.com/toad-lib/toad/issues/268)) ([505cf6f](https://github.com/toad-lib/toad/commit/505cf6f60bebcd94876d6fb51888cca811dd4c31)) ## [0.17.0](https://github.com/toad-lib/toad/compare/toad-msg-v0.16.0...toad-msg-v0.17.0) (2023-03-20) ### Features * add block getters ([#264](https://github.com/toad-lib/toad/issues/264)) ([6dc24f3](https://github.com/toad-lib/toad/commit/6dc24f3abc7ec955651a66f3765b0f6127a48c64)) ## [0.16.0](https://github.com/toad-lib/toad/compare/toad-msg-v0.15.1...toad-msg-v0.16.0) (2023-03-19) ### Features * **msg:** block ([#262](https://github.com/toad-lib/toad/issues/262)) ([fb02b62](https://github.com/toad-lib/toad/commit/fb02b6266c4b33b5550e89f8c3835c8b0591f9fc)) ## [0.15.1](https://github.com/toad-lib/toad/compare/toad-msg-v0.15.0...toad-msg-v0.15.1) (2023-03-18) ### Bug Fixes * **msg:** use new crates ([#258](https://github.com/toad-lib/toad/issues/258)) ([aa170a2](https://github.com/toad-lib/toad/commit/aa170a23fa90bdcd6853d5f06e191651d9d692d0)) ## [0.15.0](https://github.com/toad-lib/toad/compare/toad-msg-v0.14.2...toad-msg-v0.15.0) (2023-03-04) ### ⚠ BREAKING CHANGES * **msg:** Path option is repeated segments, not one string with slashes ([#231](https://github.com/toad-lib/toad/issues/231)) ### Bug Fixes * **msg:** Path option is repeated segments, not one string with slashes ([#231](https://github.com/toad-lib/toad/issues/231)) ([37f83d8](https://github.com/toad-lib/toad/commit/37f83d88bbee6fa1f03a670c84bad54b751a789a)) ## [0.14.2](https://github.com/toad-lib/toad/compare/toad-msg-v0.14.1...toad-msg-v0.14.2) (2023-03-02) ### Bug Fixes * query should be correct option number ([#227](https://github.com/toad-lib/toad/issues/227)) ([25ae7d9](https://github.com/toad-lib/toad/commit/25ae7d9687a783b6c333c309eca5fe3d8c47f44f)) ## [0.14.1](https://github.com/toad-lib/toad/compare/toad-msg-v0.14.0...toad-msg-v0.14.1) (2023-02-20) ### Bug Fixes * update common ([#225](https://github.com/toad-lib/toad/issues/225)) ([3fcb013](https://github.com/toad-lib/toad/commit/3fcb013a903034221a804b3ef3901994bc01dbee)) ## [0.14.0](https://github.com/toad-lib/toad/compare/toad-msg-v0.13.0...toad-msg-v0.14.0) (2023-02-18) ### Features * **msg:** as_bytes for structs cont. slices + manual eq ord hash ([#221](https://github.com/toad-lib/toad/issues/221)) ([fc8a527](https://github.com/toad-lib/toad/commit/fc8a5276baac709429b1262f6001822ee83f6415)) ## [0.13.0](https://github.com/toad-lib/toad/compare/toad-msg-v0.12.3...toad-msg-v0.13.0) (2023-02-11) ### Features * **toad-msg:** Message should support Observe option ([#219](https://github.com/toad-lib/toad/issues/219)) ([4eff389](https://github.com/toad-lib/toad/commit/4eff389d81210ef8eebe9d65a821de2d02ce4fec)) ## [0.12.3](https://github.com/toad-lib/toad/compare/toad-msg-v0.12.2...toad-msg-v0.12.3) (2023-02-05) ### Bug Fixes * update common ([#213](https://github.com/toad-lib/toad/issues/213)) ([b818856](https://github.com/toad-lib/toad/commit/b818856d63285be9cee79cced0d082411164e82f)) ## [0.12.2](https://github.com/toad-lib/toad/compare/toad-msg-v0.12.1...toad-msg-v0.12.2) (2023-02-05) ### Bug Fixes * update toad-common ([#209](https://github.com/toad-lib/toad/issues/209)) ([f591e2d](https://github.com/toad-lib/toad/commit/f591e2d2c59febbd475a2924d989f146bd120801)) ## [0.12.1](https://github.com/toad-lib/toad/compare/toad-msg-v0.12.0...toad-msg-v0.12.1) (2023-02-02) ### Bug Fixes * publish toad-common upgrade, fix doc root ([#204](https://github.com/toad-lib/toad/issues/204)) ([0215d1f](https://github.com/toad-lib/toad/commit/0215d1f1205e9fd8c54d151c54391488e0d2aaaf)) ## [0.12.0](https://github.com/toad-lib/toad/compare/toad-msg-v0.11.0...toad-msg-v0.12.0) (2023-01-31) ### Features * add trait for getting & setting options ([bd7e8a7](https://github.com/toad-lib/toad/commit/bd7e8a7446c77c6c1a01b2e563c4de7af0f17c8b)) ### Performance Improvements * benches ([9df2c1e](https://github.com/toad-lib/toad/commit/9df2c1e474c606fcd28e66fc2751a97e2c72861e)) ## [0.11.0](https://github.com/toad-lib/toad/compare/toad-msg-v0.10.0...toad-msg-v0.11.0) (2023-01-29) ### Features * **msg:** add known option methods with nice types ([272c5dc](https://github.com/toad-lib/toad/commit/272c5dca5a518d9ac98c8d7242177da2868efbf1)) ## [0.10.0](https://github.com/toad-lib/toad/compare/toad-msg-v0.9.0...toad-msg-v0.10.0) (2023-01-29) ### Features * add list of well-known option numbers ([25d37a0](https://github.com/toad-lib/toad/commit/25d37a0af923e1825dd0a97d44896b603637f23a)) ### Bug Fixes * docs, warnings ([5a84560](https://github.com/toad-lib/toad/commit/5a8456007892fbed61116851268c2c7e9352706b)) * fmt ([8418930](https://github.com/toad-lib/toad/commit/8418930a2b1ca054773c46c189809f4deade1b86)) ## [0.9.0](https://github.com/toad-lib/toad/compare/toad-msg-v0.8.13...toad-msg-v0.9.0) (2023-01-27) ### ⚠ BREAKING CHANGES * **toad-msg:** option map should support repeated options * options should be stored with number * **toad-msg:** parsing messages should use slices instead of iterators ([#142](https://github.com/toad-lib/toad/issues/142)) * rename kwap_msg -> toad_msg ([#136](https://github.com/toad-lib/toad/issues/136)) ### Features * **kwap:** add support for coap runtime config ([c082f06](https://github.com/toad-lib/toad/commit/c082f0696a288d2a2db9b986c3e3eaf2e7a4e8f4)) * **msg:** impl hash for structs ([#155](https://github.com/toad-lib/toad/issues/155)) ([d64d6d2](https://github.com/toad-lib/toad/commit/d64d6d2cb69cc9da9855411457e24c5bd335019d)) * options should be stored with number ([f9ed97e](https://github.com/toad-lib/toad/commit/f9ed97e58ad1db63516c3cdf1c76a8d563eeee01)) * rename kwap_msg -> toad_msg ([#136](https://github.com/toad-lib/toad/issues/136)) ([1035350](https://github.com/toad-lib/toad/commit/1035350f453c1c0d5433a13b287f5fc9d5c556e9)) * **toad-msg:** option map should support repeated options ([dad3ee1](https://github.com/toad-lib/toad/commit/dad3ee1697f74d78d3c48e6b972311feaeca8be7)) * **toad-msg:** parsing messages should use slices instead of iterators ([#142](https://github.com/toad-lib/toad/issues/142)) ([03b3a5b](https://github.com/toad-lib/toad/commit/03b3a5b0155dd8104ced35825be3cebd051d81c9)) ### Bug Fixes * bellybutton lint ([1037f28](https://github.com/toad-lib/toad/commit/1037f287f04fe652c4514282b1940d4219f9c039)) * code kind should be correct ([5fbbb1f](https://github.com/toad-lib/toad/commit/5fbbb1f4728b8c0b26cb64be062a9704a4822c88)) * impl ord ([#156](https://github.com/toad-lib/toad/issues/156)) ([3cb36fc](https://github.com/toad-lib/toad/commit/3cb36fc1dc4303153ce7b4eba9e81261240d50ac)) * **toad-msg:** Message.set should preserve previous values ([dc7fb06](https://github.com/toad-lib/toad/commit/dc7fb06b8b49fc996fe9d56a3a1cacef0fa2293e)) * **toad-msg:** update toad-common 0.10 -> 0.11 ([#145](https://github.com/toad-lib/toad/issues/145)) ([62a05ce](https://github.com/toad-lib/toad/commit/62a05ce433d253d2a98722807cd031b9fba8176d)) ## [0.8.13](https://github.com/toad-lib/toad/compare/toad-msg-v0.8.12...toad-msg-v0.8.13) (2023-01-25) ### Bug Fixes * release-please ([206e77a](https://github.com/toad-lib/toad/commit/206e77a3fa48739ae64788af4695dc69833b4d2c)) ## [0.8.12](https://github.com/toad-lib/toad/compare/toad-msg-v0.8.11...toad-msg-v0.8.12) (2023-01-25) ### Bug Fixes * release-please ([c61b9c5](https://github.com/toad-lib/toad/commit/c61b9c550046548892981889a43084701c3fc1e0)) ## [0.8.11](https://github.com/toad-lib/toad/compare/toad-msg-v0.8.10...toad-msg-v0.8.11) (2023-01-25) ### Bug Fixes * release-please ([104b5ff](https://github.com/toad-lib/toad/commit/104b5ff6c2365b38ed436717f37effeb8d88b50f)) ## [0.8.10](https://github.com/toad-lib/toad/compare/toad-msg-v0.8.9...toad-msg-v0.8.10) (2023-01-25) ### Bug Fixes * release-please ([6247519](https://github.com/toad-lib/toad/commit/62475196211d694bd79f33bdf394397d6f4021dd)) ## [0.8.9](https://github.com/toad-lib/toad/compare/toad-msg-v0.8.8...toad-msg-v0.8.9) (2023-01-25) ### Bug Fixes * release-please ([7c43cbc](https://github.com/toad-lib/toad/commit/7c43cbcf8f92b288de37244119bd51fe32fc1db7)) * release-please ([c8eb82f](https://github.com/toad-lib/toad/commit/c8eb82ff9458076323eda15373aabfea93182aa7)) ## [0.8.8](https://github.com/toad-lib/toad/compare/toad-msg-v0.8.7...toad-msg-v0.8.8) (2023-01-24) ### Bug Fixes * release-please ([45c5386](https://github.com/toad-lib/toad/commit/45c5386a5f6a2acbca3c9b8838270a5311ff723f)) * release-please ([3e9396d](https://github.com/toad-lib/toad/commit/3e9396d6d5c369a626a2173c3b951ed40a17a892)) ## [0.8.7](https://github.com/toad-lib/toad/compare/toad-msg-v0.8.6...toad-msg-v0.8.7) (2023-01-24) ### Bug Fixes * add existing release-please tags ([0d4bf22](https://github.com/toad-lib/toad/commit/0d4bf22b37ff0e2e1e5a27b79355fe2cfec80793)) * testing release-please ([4820c92](https://github.com/toad-lib/toad/commit/4820c92680b48fda5a2382a00ce70abd0d49b3da)) ### 0.8.6 (2023-01-24) ### 0.8.5 (2023-01-22) ### 0.8.4 (2023-01-18) ### 0.8.3 (2022-10-27) ### Bug Fixes * impl ord ([#156](https://github.com/clov-coffee/toad/issues/156)) ([3cb36fc](https://github.com/clov-coffee/toad/commit/3cb36fc1dc4303153ce7b4eba9e81261240d50ac)) ### 0.8.2 (2022-10-27) ### Features * **msg:** impl hash for structs ([#155](https://github.com/clov-coffee/toad/issues/155)) ([d64d6d2](https://github.com/clov-coffee/toad/commit/d64d6d2cb69cc9da9855411457e24c5bd335019d)) ### 0.8.1 (2022-10-20) ### Bug Fixes * **toad-msg:** update toad-common 0.10 -> 0.11 ([#145](https://github.com/clov-coffee/toad/issues/145)) ([62a05ce](https://github.com/clov-coffee/toad/commit/62a05ce433d253d2a98722807cd031b9fba8176d)) ## 0.8.0 (2022-10-20) ### ⚠ BREAKING CHANGES * removed `TryConsumeNBytes` * removed a type parameter from `Message` * from `Message` * to `Message` * added trait bounds for `Message` impls (non-breaking if you're using `Vec` or `tinyvec::ArrayVec`) * `PayloadBytes: AppendCopy` * `Options: AppendCopy` * added trait bound `A: AsRef<[u8]>` for `TryFromBytes` * changed `TryFromBytes::::try_from_bytes` * from `fn>(bs: I) -> Result<...>` * to `fn(bs: A) -> Result<...>` * changed trait bound on `A` in `TryConsumeBytes` * from `A: Iterator<...>` * to `A: AsRef<[u8]>` * changed `TryConsumeBytes::::try_consume_bytes` * from `fn try_consume_bytes(bytes: &mut I) -> Result` * to `fn try_consume_bytes(bytes: &mut Cursor) -> Result;` * refactored module structure (most likely non-breaking since they were all `pub` but `#[doc(hidden)]`) ### Features none ### Bug Fixes * removed trait bounds on all struct type parameters, but kept the trait bounds on the impls * _the data structure doesn't care what it stores, but the **behavior** definitely does_ ### Performance Improvements * rewrote message parsing to use the new cursor type in toad-common * navigating buffers is now constant time from linear time * filling toad-msg data structures by `Extend`ing from the source byte buffer should be many many times faster now * this is owed to `Vec` and `tinyvec::ArrayVec` using more specialized "copy to end from slice" implementations that use `ptr::non_overlapping_copy` (See `toad_common::AppendCopy`) instead of copying one at a time ## 0.7.0 (2022-10-08) ### ⚠ BREAKING CHANGES * rename kwap_msg -> toad_msg (#136) ### Features * rename kwap_msg -> toad_msg ([#136](https://github.com/clov-coffee/toad/issues/136)) ([1035350](https://github.com/clov-coffee/toad/commit/1035350f453c1c0d5433a13b287f5fc9d5c556e9)) ### 0.6.1 (2022-06-18) ### Features * **msg:** add critical, nocachekey, unsafe flags to optnumber ([#132](https://github.com/clov-coffee/toad/issues/132)) ([3db6794](https://github.com/clov-coffee/toad/commit/3db6794af1ea9ceb514a7c9692331c86d25b436d)) ## 0.6.0 (2022-05-25) ### ⚠ BREAKING CHANGES * **toad:** support ipv4 and ipv6 (#126) ### Features * **toad:** support ipv4 and ipv6 ([#126](https://github.com/clov-coffee/toad/issues/126)) ([9150ca1](https://github.com/clov-coffee/toad/commit/9150ca13950db5c8f17f0963f3ae111f8362ba79)) ### 0.5.1 (2022-05-20) ### Features * **toad-msg:** add Token::opaque, Message::ack, Code.kind ([#118](https://github.com/clov-coffee/toad/issues/118)) ([3119233](https://github.com/clov-coffee/toad/commit/31192330fa712d26147b61ef184f17ba3c534554)) ## 0.5.0 (2022-05-20) ### ⚠ BREAKING CHANGES * **toad:** Choose CON / NON responses to NON requests (#117) ### Features * **toad:** Choose CON / NON responses to NON requests ([#117](https://github.com/clov-coffee/toad/issues/117)) ([5d39603](https://github.com/clov-coffee/toad/commit/5d3960314ffef7cac4f896d92c056d6e9100f10e)) ### 0.4.7 (2022-05-10) ### 0.4.6 (2022-04-27) ### Features * **msg:** update common ([#71](https://github.com/clov-coffee/toad/issues/71)) ([6cf4927](https://github.com/clov-coffee/toad/commit/6cf49272c096eb15694325596e368946249cd992)) ### 0.4.5 (2022-01-29) ### 0.4.4 (2022-01-15) ### Bug Fixes * **msg:** Code should impl Eq + Ord ([#57](https://github.com/clov-coffee/toad/issues/57)) ([96bdd8d](https://github.com/clov-coffee/toad/commit/96bdd8da8ab71c6c6a828c95d6d38ff90a3d1dd4)) ### 0.4.3 (2022-01-11) ### 0.4.2 (2022-01-08) ### Bug Fixes * **msg:** OptNumber should impl Default ([#47](https://github.com/clov-coffee/toad/issues/47)) ([e3b8687](https://github.com/clov-coffee/toad/commit/e3b8687b1b30de909a0c8b6203c355c1ee1c7aaa)) ### 0.4.1 (2022-01-07) ### Bug Fixes * **msg:** all where clauses should be gone ([#44](https://github.com/clov-coffee/toad/issues/44)) ([f067a87](https://github.com/clov-coffee/toad/commit/f067a87b705b0800b1729893dc34942aebb27917)) ## 0.4.0 (2022-01-04) ### ⚠ BREAKING CHANGES * **msg:** toad_msg should use latest version of toad_common (#42) ### Features * **msg:** toad_msg should use latest version of toad_common ([#42](https://github.com/clov-coffee/toad/issues/42)) ([2f035ba](https://github.com/clov-coffee/toad/commit/2f035ba1373126968e7c31c0a4ea327fc9113e50)) ## 0.3.0 (2022-01-01) ### ⚠ BREAKING CHANGES * **msg:** make message type an enum (#38) ### Features * **msg:** make message type an enum ([#38](https://github.com/clov-coffee/toad/issues/38)) ([91c77b6](https://github.com/clov-coffee/toad/commit/91c77b659a8066ca6c34dbe9e5b3df7abfe2d028)) ### 0.2.7 (2022-01-01) ### Bug Fixes * **msg:** update toad_common ([#37](https://github.com/clov-coffee/toad/issues/37)) ([73baf95](https://github.com/clov-coffee/toad/commit/73baf95ae05faded1751aa4e7e849c62df0ade6b)) ### 0.2.6 (2021-12-31) ### 0.2.5 (2021-12-30) ### Bug Fixes * **msg:** make Code::new a const fn ([#29](https://github.com/clov-coffee/toad/issues/29)) ([e0f22cf](https://github.com/clov-coffee/toad/commit/e0f22cf0663b9ba7a4617f3fa4efbaf82856d155)) ### 0.2.4 (2021-12-30) ### Features * **msg:** add Code::new ([#28](https://github.com/clov-coffee/toad/issues/28)) ([47c1ce7](https://github.com/clov-coffee/toad/commit/47c1ce7c0867052aec9ddba041335a2b763202c4)) ### 0.2.3 (2021-12-30) ### 0.2.2 (2021-12-30) ### 0.2.1 (2021-12-30) ## 0.2.0 (2021-12-29) ### ⚠ BREAKING CHANGES * combine no_alloc and alloc into one Message generic over collection (#17) ### Features * combine no_alloc and alloc into one Message generic over collection ([#17](https://github.com/clov-coffee/toad/issues/17)) ([10939a2](https://github.com/clov-coffee/toad/commit/10939a230751183e49b60adb45d0bfa84d28a202)) ### 0.1.6 (2021-12-27) ### 0.1.5 (2021-12-27) ### Bug Fixes * bump amend ([c6e34cb](https://github.com/clov-coffee/toad/commit/c6e34cbe57c52bf6c888ef856a4c9ff43d4ccd23)) ### 0.1.4 (2021-12-26) ### Bug Fixes * update token to store token bytes verbatim ([#8](https://github.com/clov-coffee/toad/issues/8)) ([9dc6724](https://github.com/clov-coffee/toad/commit/9dc6724d9bbc1ef6f7c81156f879ffec88cba20f)) ### 0.1.3 (2021-12-26) ### 0.1.2 (2021-12-26) ### 0.1.1 (2021-12-26)