blob: 53d47da5393cdaa929a058f6a61340a1dae423f8 [file] [log] [blame]
// Copyright 2022 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.
// [START library]
// Equivalent to `@available(platform="fuchsia", added=1)`.
@available(added=1)
library fuchsia.examples.docs;
// [END library]
// [START arguments]
@available(added=1, deprecated=2, removed=3, legacy=true)
const ANSWER uint64 = 42;
// [END arguments]
// [START inheritance]
@available(added=2, deprecated=3)
protocol Versioned {
// Equivalent to `@available(added=2, deprecated=3, removed=4, legacy=true)`.
@available(removed=4, legacy=true)
Removed(table {
// Equivalent to `@available(added=3, deprecated=3, removed=4, legacy=true)`.
@available(added=3)
1: message string;
// Equivalent to `@available(added=2, deprecated=3, removed=4, legacy=false)`.
@available(legacy=false)
2: count uint32;
});
};
// [END inheritance]
// [START deprecation]
protocol Example {
// (Description of the method.)
//
// # Deprecation
//
// (Detailed explanation of why the method is deprecated, the timeline for
// removing it, and what should be used instead.)
@available(deprecated=5, removed=6, note="use Replacement")
Deprecated();
@available(added=5)
Replacement();
};
// [END deprecation]
// [START replaced]
@available(replaced=5)
type Color = strict enum {
RED = 1;
};
@available(added=5)
type Color = flexible enum { // Note: flexible instead of strict
RED = 1;
};
// [END replaced]
// [START legacy]
protocol LegacyExample {
@available(deprecated=5, removed=6, legacy=true, note="...")
LegacyMethod();
};
// [END legacy]
// [START references]
const VALUE uint32 = 5;
const REFERENCES_VALUE uint32 = VALUE;
type Type = struct {};
type ReferencesType = table {
1: t Type;
};
alias ReferencesTypeAndValue = vector<Type>:VALUE;
// [END references]