| // Copyright 2020 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| library fuchsia.examples.docs; |
| |
| // [START wire-format-traversal-order] |
| struct Cart { |
| vector<Item> items; |
| }; |
| |
| struct Item { |
| Product product; |
| uint32 quantity; |
| }; |
| |
| struct Product { |
| string sku; |
| string name; |
| string? description; |
| uint32 price; |
| }; |
| // [END wire-format-traversal-order] |
| |
| // [START wire-format-inlined-objects] |
| struct Region { |
| vector<Rect> rects; |
| }; |
| |
| struct Rect { |
| Point top_left; |
| Point bottom_right; |
| }; |
| |
| struct Point { |
| uint32 x; |
| uint32 y; |
| }; |
| // [END wire-format-inlined-objects] |
| |
| // [START wire-format-tables] |
| table Value { |
| 1: int16 command; |
| 2: Circle data; |
| 3: float64 offset; |
| }; |
| // [END wire-format-tables] |
| |
| // [START wire-format-unions] |
| union UnionValue { |
| 1: int16 command; |
| 2: Circle data; |
| 3: float64 offset; |
| }; |
| // [END wire-format-unions] |
| |
| struct CreateResource {}; |
| struct ReleaseResource {}; |
| // [START command] |
| union Command { |
| 1: CreateResource create_resource; |
| 2: ReleaseResource release_resource; |
| }; |
| // [END command] |
| |
| // [START mode] |
| bits Mode { |
| READ = 1; |
| WRITE = 2; |
| }; |
| // [END mode] |
| |
| // [START hasher] |
| protocol Hasher { |
| Hash(string value) -> (array<uint8>:10 result); |
| }; |
| // [END hasher] |
| |
| // [START example-struct] |
| struct MyRequest { |
| uint32 serial; |
| string key; |
| vector<uint32> options; |
| }; |
| // [END example-struct] |