1 // Test structures with cyclic references. 2 // These can only be handled in pointer/callback mode, 3 // see associated .options files. 4 5 syntax = "proto2"; 6 7 message TreeNode 8 { 9 optional int32 leaf = 1; 10 optional TreeNode left = 2; 11 optional TreeNode right = 3; 12 } 13 14 message Dictionary 15 { 16 repeated KeyValuePair dictItem = 1; 17 } 18 19 message KeyValuePair 20 { 21 required string key = 1; 22 optional string stringValue = 2; 23 optional int32 intValue = 3; 24 optional Dictionary dictValue = 4; 25 optional TreeNode treeValue = 5; 26 } 27 28