[roll] Roll fuchsia [fidl][rust] Refactor decoding layer This change started out with adding a lifetime to the `Decoder` trait to reduce the amount of unsafe code we have to write. That gradually spread to a few other major changes as well: - `Decoder` no longer has any safety requirements, and can be implemented without unsafe. - The `Unconstrainted` trait has been removed. It was a nice shortcut for implementation, but was confusing since it shouldn't be used for bounds. - A new `AsDecoder` trait was added, finally allowing us to share the basic implementations of `Decoder` between FIDL, DF, and FDomain. - Wire types have been moved into a `wire` module for clarity. In the future, I'd like to further remove "Wire" from their names and refer to them via `wire::`. This matches the structure of the generated bindings. - Device-side tests have been fixed and re-enabled for fidl_next_bind and fidl_next_codec. - The protocol layer now has a `Body` wrapper instead of using the transport backend's receive buffer directly. This is a knock-on effect from `AsDecoder` and will enable the protocol layer to check for flexible errors. - References to `Constrained` in bounds have been merged into `Wire` for clarity. - Codec layer impls for builtin types have been moved into one file. This keeps all of the related implementations lexically close to each other. - A few functions and methods have been renamed for clarity, including `decode_owned`. - `WirePointer` now has a safer API that helps guard against pointing to memory that it outlives. - Some additional `PartialEq` impls have been added for ergonomics and to make writing tests easier. - Several helper functions have been replaced with direct implementations. This is mostly because we have more ergonomic APIs. Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1505016 Original-Revision: 8f685ac0a2b9c796682e852b6059f7f9dc3c3db9 GitOrigin-RevId: 0f95e0b477199f497795f1052dc2b7acd24ac991 Change-Id: I4a077d6f1814d35b5b749e53b402dadd8d4254d2
This repository contains Fuchsia's Global Integration manifest files.
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 in one of the communication channels documented at get involved.
First install Jiri.
Next run:
$ jiri init $ jiri import minimal https://fuchsia.googlesource.com/integration $ jiri update
Third party projects should have their own subdirectory in ./third_party.