[roll] Roll fuchsia [fidl][llcpp] Add ObjectView ctors to improve type inference

This CL adds two ObjectView constructors to improve type inference. This
is especially useful for table field setters. For example, consider a
table like:

```
library fuchsia.stuff;
type Foo = struct { ... };
type Options = table {
    1: foos vector<Foo>;
}
```

Suppose have these gains in a std::vector. To set this field to reuse
the std::vector storage, we need to do something like:

```
  std::vector<fuchsia_suff::wire::Foo> foos;
  auto foos_view =
    fidl::VectorView<fuchsia_suff::wire::Foo>::FromExternal(&foos);

  fuchsia_stuff::wire::Options options(arena);
  options.set_foos(
    fidl::ObjectView<fidl::VectorView<fuchsia_stuff::wire::Foo>>(
      arena, foos_view));
```

That last statement is quite verbose. Ideally we'd write the following,
with the compiler inferring the types automatically:

```
  options.set_foos(fidl::ObjectView(arena, foos_view));
```

This is currently not possible because the ObjectView<T> constructor
uses a separate template: the compiler has no way to infer T given
the constructor args. This CL fixes that problem by adding
specializations to allow directly constructing and ObjectView using T's
move and/or copy ctors.

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/591859
Original-Revision: 04599f8ed40deac076e4c286eef123f360bc5e54
GitOrigin-RevId: 9343a085f6f754843b72fdad084b75a664020ef9
Change-Id: I010db37ec5ae9b8d92429a401cd77ad9c02a25b6
1 file changed
tree: 0e0dcbf826ae2386c663429ab3a9ab52f4da9ef1
  1. infra/
  2. third_party/
  3. firmware
  4. flower
  5. jiri.lock
  6. minimal
  7. prebuilts
  8. README.md
  9. stem
  10. test_durations
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.