|  | // 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. | 
|  |  | 
|  | syntax = "proto3"; | 
|  |  | 
|  | package fidl_codec.proto; | 
|  |  | 
|  | // Defines a fidl_codec value. | 
|  | message Value { | 
|  | oneof Kind { | 
|  | bool null_value = 1; | 
|  | bytes raw_value = 2; | 
|  | bool bool_value = 3; | 
|  | Integer integer_value = 4; | 
|  | double double_value = 5; | 
|  | string string_value = 6; | 
|  | HandleInfo handle_value = 7; | 
|  | Union union_value = 8; | 
|  | Struct struct_value = 9; | 
|  | Vector vector_value = 10; | 
|  | Table table_value = 11; | 
|  | FidlMessage fidl_message_value = 12; | 
|  | ActualAndRequested actual_and_requested_value = 13; | 
|  | } | 
|  | } | 
|  |  | 
|  | // Defines an integer value. | 
|  | message Integer { | 
|  | uint64 absolute_value = 1; | 
|  | bool negative = 2; | 
|  | } | 
|  |  | 
|  | // Defines a handle value. | 
|  | message HandleInfo { | 
|  | uint32 handle = 1; | 
|  | uint32 type = 2; | 
|  | uint32 rights = 3; | 
|  | uint32 operation = 4; | 
|  | } | 
|  |  | 
|  | // Defines a union value. | 
|  | message Union { | 
|  | string member = 1; | 
|  | Value value = 2; | 
|  | } | 
|  |  | 
|  | // Defines a struct field with id | 
|  |  | 
|  | message StructField { | 
|  | uint32 id = 1; | 
|  | string name = 2; | 
|  | Value value = 3; | 
|  | } | 
|  |  | 
|  | // Defines a struct value. | 
|  | message Struct { | 
|  | repeated StructField fields = 1; | 
|  | } | 
|  |  | 
|  | // Defines a vector value. | 
|  | message Vector { | 
|  | repeated Value value = 1; | 
|  | } | 
|  |  | 
|  | // Defines a table value. | 
|  | message Table { | 
|  | map<string, Value> members = 1; | 
|  | } | 
|  |  | 
|  | // Defines a payloadable value. | 
|  | message Payload { | 
|  | oneof Kind { | 
|  | Struct struct_value = 1; | 
|  | Union union_value = 2; | 
|  | Table table_value = 3; | 
|  | } | 
|  | } | 
|  |  | 
|  | // Defines a FIDL message value. | 
|  | message FidlMessage { | 
|  | uint32 txid = 1; | 
|  | uint64 ordinal = 2; | 
|  | string global_errors = 3; | 
|  | string epitaph_error = 4; | 
|  | bool received = 5; | 
|  | bool is_request = 6; | 
|  | bool unknown_direction = 7; | 
|  | string protocol = 8; | 
|  | string method = 9; | 
|  | bytes raw_bytes = 10; | 
|  | repeated HandleInfo handle = 11; | 
|  | bool has_request = 12; | 
|  | Payload decoded_request = 13; | 
|  | string request_errors = 14; | 
|  | bool has_response = 15; | 
|  | Payload decoded_response = 16; | 
|  | string response_errors = 17; | 
|  | } | 
|  |  | 
|  | // Defines a value which is displayed: actual/requested. | 
|  | message ActualAndRequested { | 
|  | uint64 actual = 1; | 
|  | uint64 requested = 2; | 
|  | } |