// Test structures with cyclic references.
// These can only be handled in pointer/callback mode,
// see associated .options files.

syntax = "proto2";

message TreeNode
{
    optional int32 leaf = 1;
    optional TreeNode left = 2;
    optional TreeNode right = 3;
}

message Dictionary
{
    repeated KeyValuePair dictItem = 1;
}

message KeyValuePair
{
    required string key = 1;
    optional string stringValue = 2;
    optional int32 intValue = 3;
    optional Dictionary dictValue = 4;
    optional TreeNode treeValue = 5;
}

