[roll] Roll fuchsia [packet] Simplify buffer trait hierarchy

`packet`'s family of buffer traits bottom out at two fundamental
flavors: fragmented buffers and contiguous buffers. Fragmented buffers
are those whose bodies may be discontiguous in memory, while contiguous
buffers are those whose bodies are guaranteed to be contiguous.

Previously, we used extra marker traits and blanket impls in order to
reduce the amount of code we needed to write. However, this introduced
unnecessary complexity in the API that only made the API more convoluted
for users to understand.

In this commit, we make the following changes:
- All buffer traits bottom out at `FragmentedBuffer`
- `ContiguousBuffer` is a sub-trait of `FragmentedBuffer`
- Impls which were previously achieved via blanket impls aided by the
  `ContiguousBuffer[Mut]Impl` marker traits are now implemented by hand
  with the aid of a macro; those marker traits are removed

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/862776
Original-Revision: fd4abd876d815b1385ac3fad3c0b99d430a67ff1
GitOrigin-RevId: ead7fe9262bf6989edf983831e79ea3a8425f022
Change-Id: I7ab19b5cc10e91acad7c74b93263f72471db7679
1 file changed
tree: 976f2493408f25f5d7692d219456d1b8d6067660
  1. git-hooks/
  2. infra/
  3. third_party/
  4. cts
  5. firmware
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
  14. toolchain
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.