blob: 9fb3fd85024837e8192bcc551af365edc387c5af [file] [log] [blame]
// 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]
type Cart = struct {
items vector<Item>;
};
type Item = struct {
product Product;
quantity uint32;
};
type Product = struct {
sku string;
name string;
description string:optional;
price uint32;
};
// [END wire-format-traversal-order]
// [START wire-format-inlined-objects]
type Region = struct {
rects vector<Rect>;
};
type Rect = struct {
top_left Point;
bottom_right Point;
};
type Point = struct {
x uint32;
y uint32;
};
// [END wire-format-inlined-objects]
// [START wire-format-tables]
type Value = table {
1: command int16;
2: data Circle;
3: offset float64;
};
// [END wire-format-tables]
// [START wire-format-unions]
type UnionValue = strict union {
1: command int16;
2: data Circle;
3: offset float64;
};
// [END wire-format-unions]
type CreateResource = struct {};
type ReleaseResource = struct {};
// [START command]
type Command = strict union {
1: create_resource CreateResource;
2: release_resource ReleaseResource;
};
// [END command]
// [START mode]
type Mode = strict bits {
READ = 1;
WRITE = 2;
};
// [END mode]
// [START hasher]
protocol Hasher {
Hash(struct {
value string;
}) -> (struct {
result array<uint8, 10>;
});
};
// [END hasher]
// [START example-struct]
type MyRequest = struct {
serial uint32;
key string;
options vector<uint32>;
};
// [END example-struct]