Skip to content

Split FreezeBuilder out of OctetsBuilder. #25

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jan 2, 2023
Merged

Split FreezeBuilder out of OctetsBuilder. #25

merged 2 commits into from
Jan 2, 2023

Conversation

partim
Copy link
Member

@partim partim commented Jan 2, 2023

This PR moves the freeze method out of OctetsBuilder into a new FreezeBuilder trait. This allows octets builders that are not actually freezable, for instance temporarily wrapping an octets builder around a mutable reference to some other octets builder.

@partim partim merged commit a2fe1dd into main Jan 2, 2023
@partim partim deleted the freeze-builder branch January 2, 2023 13:20
partim added a commit that referenced this pull request May 12, 2023
Breaking Changes

* Drop the `OctetsRef` trait and introduce a new `Octets` trait that takes
  over its purpose. This requires Rust 1.65.0. ([#12])
* Change the signature of `Octets::range` to use a range and drop all the
  convenience methods. ([#13])
* Split conversion from an octets builder to an immutable octets sequence
  off of `OctetsBuilder` to the new `FreezeBuilder` trait. ([#25])
* Dropped the `len` and `is_empty` methods from the `OctetsBuilder` trait.
  These can be requested via `AsRef<[u8]>` if necessary. ([#20])
* Rearranged module structure:
  * broke up `traits` into `octets` and `builder`,
  * renamed `types` to `array`, and
  * moved `SmallOctets` to `octets`. ([#18])
* The integer parsing methods on `Parser` have been renamed to make it
  clear they parse big-endian integers and new methods for parsing
  little-endian integers have been added. ([#35])
* The optional traits `SerializeOctets` and `DeserializeOctets` have been
  redesigned for greater flexibility. ([#21])

New

* Added `Parser::parse_parser` that allows parsing a given number of octets
  and return them as a cloned parser. ([#10])
* Add methods to `Parser` to parse 64 and 128 bit integers. ([#11])
* Added support for the `heapless` crate. ([#19])
* Added missing `Octets` implementation for `Array<N>`. ([#29])
* Added `Octets` implementation for `Arc<[u8]>`. ([#28])
* Added blanket implementations for `OctetsBuilder` and `Truncate` for
  mutable references of types that are `OctetsBuilder` and `Truncate`,
  respectively. ([#30])
* Added conversions from `&str` and `&[u8]` to `Str<[u8]>`. ([#31])
* Added `Array::resize_raw`. ([#32], [#33])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant