| // Copyright 2020 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package fidl |
| |
| import "syscall/zx" |
| |
| // Enum is implemented by any value that is a FIDL enum. |
| // |
| // During code generation, `fidlgen_go` ensures that all domain types generated |
| // to represent FIDL enum implement this interface. |
| type Enum interface { |
| // IsUnknown indicates whether this enum value is unknown, i.e. whether it |
| // falls outside of known FIDL enum members. |
| // |
| // While strict FIDL enums ensure that no unknown enums can be decoded, it |
| // is still possible to construct an unknown enum by casting a primitive |
| // value. |
| IsUnknown() bool |
| } |
| |
| // Bits is implemented by any value that is a FIDL bits type. |
| // |
| // During code generation, `fidlgen_go` ensures that all domain types generated |
| // to represent FIDL bits implement this interface. |
| // |
| // While strict FIDL bits ensure that no unknown bits can be decoded, it |
| // is still possible to construct a bits value with unknown bits by casting |
| // a primitive value. |
| type Bits interface { |
| // HasUnknownBits indicates whether this bits value contains any unknown |
| // bits |
| HasUnknownBits() bool |
| |
| // GetUnknownBits returns a uint64 containing only the unknown bits |
| GetUnknownBits() uint64 |
| } |
| |
| // UnknownData represents the raw bytes and handles of an unknown payload |
| type UnknownData struct { |
| Bytes []byte |
| Handles []zx.HandleInfo |
| } |