blob: d4f1049d6c7aa070b5e5b392ca3734f241de81c6 [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;
// 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;
}
}
// 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 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 interface = 8;
string method = 9;
bytes raw_bytes = 10;
repeated HandleInfo handle = 11;
bool has_request = 12;
Struct decoded_request = 13;
string request_errors = 14;
bool has_response = 15;
Struct decoded_response = 16;
string response_errors = 17;
}