const indentDesc … type regularFieldsPrinter … var _ … var _ … // VisitArray prints a Array type. It is just a passthrough. func (f *regularFieldsPrinter) VisitArray(a *proto.Array) { … } // VisitKind prints a Kind type. It prints each key in the kind, with // the type, the required flag, and the description. func (f *regularFieldsPrinter) VisitKind(k *proto.Kind) { … } // VisitMap prints a Map type. It is just a passthrough. func (f *regularFieldsPrinter) VisitMap(m *proto.Map) { … } // VisitPrimitive prints a Primitive type. It stops the recursion. func (f *regularFieldsPrinter) VisitPrimitive(p *proto.Primitive) { … } // VisitReference prints a Reference type. It is just a passthrough. func (f *regularFieldsPrinter) VisitReference(r proto.Reference) { … } // PrintFields will write the types from schema. func (f *regularFieldsPrinter) PrintFields(schema proto.Schema) error { … }