| // 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) |
| const ANSWER uint64 = 42; |
| // [END arguments] |
| |
| // [START modifiers] |
| type Color = strict(removed=2) flexible(added=2) enum { |
| RED = 1; |
| }; |
| // [END modifiers] |
| |
| // [START inheritance] |
| @available(added=2, deprecated=3) |
| open protocol Versioned { |
| // Equivalent to `@available(added=2, deprecated=3, removed=4)`. |
| @available(removed=4) |
| flexible Removed(table { |
| // Equivalent to `@available(added=3, deprecated=3, removed=4)`. |
| @available(added=3) |
| 1: message string; |
| }); |
| }; |
| // [END inheritance] |
| |
| // [START deprecation] |
| open 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") |
| flexible Deprecated(); |
| |
| @available(added=5) |
| flexible Replacement(); |
| }; |
| // [END deprecation] |
| |
| // [START replace_constant] |
| @available(replaced=5) |
| const MAX_NAME_LEN uint32 = 32; |
| |
| @available(added=5) |
| const MAX_NAME_LEN uint32 = 64; |
| // [END replace_constant] |
| |
| // [START replace_member] |
| type Data = resource table { |
| @available(replaced=5) |
| 1: name string:32; |
| |
| @available(added=5) |
| 1: name string:64; |
| }; |
| // [END replace_member] |
| |
| // [START renamed] |
| type User = table { |
| @available(replaced=2, renamed="first_name") |
| 1: name string; |
| @available(added=2) |
| 1: first_name string; |
| }; |
| // [END renamed] |
| |
| // [START rename_declaration] |
| @available(deprecated=2, removed=3, note="renamed to Information") |
| type Info = table {}; |
| |
| @available(added=2) |
| type Information = table {}; |
| // [END rename_declaration] |
| |
| // [START discourage_use] |
| open protocol Door { |
| @available(removed=5, renamed="DeprecatedOpen") |
| flexible Open() -> (); |
| }; |
| // [END discourage_use] |
| |
| // [START reuse_name] |
| open protocol Door2 { |
| @available(removed=5, renamed="DeprecatedOpen") |
| flexible Open() -> (); |
| |
| @available(added=5) |
| @selector("NewOpen") |
| flexible Open() -> () error uint32; |
| }; |
| // [END reuse_name] |
| |
| // [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] |