// A series of messages with various kinds of cycles in them. // +-+---+ +---+ +---+ // V | | V | V | // A -> B-+-> C -> D---+--->E---+ // ^ |`---|--------^ // +----------+----+ F message A { optional B b = 1; } message B { optional B b = 1; optional C c = 2; } message C { optional A a = 1; optional B b = 2; optional D d = 3; optional E e = 4; } message D { optional A a = 1; optional D d = 2; optional E e = 3; } message E { optional E e = 1; } message F { optional E e = 1; } // A proto with a bunch of simple primitives. message SimplePrimitives { optional fixed64 a = 1; optional fixed32 b = 2; optional double c = 3; optional float d = 5; //optional sint64 e = 6; //optional sint32 f = 7; }