Files
nanopb/tests/options.proto
Petteri Aimonen d32d322658 Add field type FT_IGNORE to generator.
This allows ignoring fields that are unnecessary or too large for an
embedded system using nanopb, while allowing them to remain in the .proto
for other platforms.

Update issue 51
Status: FixedInGit
2013-01-14 17:30:49 +02:00

74 lines
1.4 KiB
Protocol Buffer

/* Test nanopb option parsing.
* options.expected lists the patterns that are searched for in the output.
*/
import "nanopb.proto";
// File level options
option (nanopb_fileopt).max_size = 20;
message Message1
{
required string filesize = 1;
}
// Message level options
message Message2
{
option (nanopb_msgopt).max_size = 30;
required string msgsize = 1;
}
// Field level options
message Message3
{
required string fieldsize = 1 [(nanopb).max_size = 40];
}
// Forced callback field
message Message4
{
required int32 int32_callback = 1 [(nanopb).type = FT_CALLBACK];
}
// Short enum names
enum Enum1
{
option (nanopb_enumopt).long_names = false;
EnumValue1 = 1;
EnumValue2 = 2;
}
message EnumTest
{
required Enum1 field = 1 [default = EnumValue2];
}
// Short enum names inside message
message Message5
{
enum Enum2
{
option (nanopb_enumopt).long_names = false;
EnumValue1 = 1;
}
required Enum2 field = 1 [default = EnumValue1];
}
// Packed structure
message my_packed_struct
{
option (nanopb_msgopt).packed_struct = true;
optional int32 myfield = 1;
}
// Message with ignored field
// Note: doesn't really test if the field is missing in the output,
// but atleast tests that the output compiles.
message Message6
{
required int32 field1 = 1;
optional int32 field2 = 2 [(nanopb).type = FT_IGNORE];
}