// 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; }