[roll] Roll fuchsia [fidl][rfc] RFC-0138 change error handling.

Change how RFC-0138 defines error handling for unknown interactions,
both in the wire format and in the syntax.

In the wire format: define `fidl.TransportErr`, for the `transport_err`
variant of the result union, in order to avoid dependencies on library
`zx` and to clearly define how invalid values of `transport_err` are
handled.

In the bindings: specify that error handling should fold `transport_err`
into existing error handling for transport-level errors such as errors
from channel read/write and decoding, and that bindings should actually
present the same API for strict or flexible methods, rather than
presenting an additional transport error variant.

This is based on experience while implementing the RFC: LLCPP, C++
Natural Types, and Rust bindings all use similar result types, which
present transport errors and application errors in a way that can be
differentiated and handled, and given the rest of the design here, it
made more sense to roll into the existing transport errors rather than
attempting to add another layer of complexity to the result types.

The RFC when drafted was likely focused on HLCPP, where all transport
errors are sent to a separate handler, which would require using a
different API for flexible methods than strict methods in order to let
bindings tell which method call got an unknown interaction response.

The originally proposed approach will likely still be used if unknown
interaction support is implemented in HLCPP. However, by changing the
RFC to match the usage in LLCPP, C++ Natural Types, and Rust, we make it
so those bindings are the norm and HLCPP is the exception, which is
preferred since HLCPP is likely to be deprecated.

Original-Bug: 88366
Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/686966
Original-Revision: f9d64fb74ab3b8ca913fe28a7fd525b4931a6419
GitOrigin-RevId: a10c2516eee96aaafbef2186e7905880f823ff3b
Change-Id: I943692d34d618d7a978ac5b298ac776caec0c7ec
1 file changed
tree: e34341edc7d5ef31a1a934e54558f9e0a9341468
  1. infra/
  2. third_party/
  3. cts
  4. firmware
  5. flower
  6. jiri.lock
  7. minimal
  8. prebuilts
  9. README.md
  10. stem
  11. test_durations
  12. 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.