blob: 0c06fab76b21c175cc1078d848d251439ac14913 [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.
syntax = "proto3";
package fidl_codec.proto;
// The messages in this package correspond to the C++ types in
// src/lib/fidl_codec/wire_object.h.
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;
EmptyPayload empty_payload_value = 14;
}
}
message Integer {
uint64 absolute_value = 1;
bool negative = 2;
}
message HandleInfo {
uint32 handle = 1;
uint32 type = 2;
uint32 rights = 3;
uint32 operation = 4;
}
message Union {
string member = 1;
Value value = 2;
}
message StructField {
uint32 id = 1;
string name = 2;
Value value = 3;
}
message Struct {
repeated StructField fields = 1;
}
message Vector {
repeated Value value = 1;
}
message Table {
map<string, Value> members = 1;
}
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;
Value decoded_request = 13;
string request_errors = 14;
bool has_response = 15;
Value decoded_response = 16;
string response_errors = 17;
}
message ActualAndRequested {
uint64 actual = 1;
uint64 requested = 2;
}
message EmptyPayload {}