[fidl][go] Use struct typeshapes for request/responses

This updates fidlgen to use the payload structs instead of
request/response type info from thee IR.

In fidlgen, this means anonymous structs are compiled but stored
separately from the rest of the structs. They get their correct
name set in compileMethod, and then afterwards are appended to
Root.Structs.

Also, previously .Request/Response would be nil when a method does
not have a request/response, and would have empty .Members when
there was no payload. Now, .Request/Response is nil when there is
no payload, and .HasRequest/Response is used to indicate whether
there is a request/respones or not (if .Request/Response are not nil,
it must have at least one member). This makes it clear that
empty payloads are a different case from an empty struct payload.

Bug: 7704
Test: fx run-test go_fidl_tests
Change-Id: I395ce017b993dbac0c7306d2557ca05a5fa987bd
6 files changed
tree: a31e59764878d51169812980e46cf8743a0d4472
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. garnet/
  7. peridot/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .dir-locals.el
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .style.yapf
  22. AUTHORS
  23. BUILD.gn
  24. CODE_OF_CONDUCT.md
  25. CONTRIBUTING.md
  26. LICENSE
  27. OWNERS
  28. PATENTS
  29. README.md
  30. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.