syntax = "proto2";

import 'nanopb.proto';

message IntegerArray {
    repeated int32 data = 1 [(nanopb).max_count = 10];
}

message FloatArray {
    repeated float data = 1 [(nanopb).max_count = 10];
}

message StringMessage {
    required string data = 1 [(nanopb).max_length = 10];
}

message BytesMessage {
    required bytes data = 1 [(nanopb).max_size = 16];
}

message CallbackArray {
    // We cheat a bit and use this message for testing other types, too.
    // Nanopb does not care about the actual defined data type for callback
    // fields.
    repeated int32 data = 1;
}

message IntegerContainer {
    required IntegerArray submsg = 1;
}

message CallbackContainer {
    required CallbackArray submsg = 1;
}

message CallbackContainerContainer {
    required CallbackContainer submsg = 1;
}

message StringPointerContainer {
    repeated string rep_str = 1 [(nanopb).type = FT_POINTER];
}

