// extractFile extracts a FileDescriptorProto from a gzip'd buffer. func extractFile(gz []byte) (*FileDescriptorProto, error) { … } type Message … // ForMessage returns a FileDescriptorProto and a DescriptorProto from within it // describing the given message. func ForMessage(msg Message) (fd *FileDescriptorProto, md *DescriptorProto) { … } // Is this field a scalar numeric type? func (field *FieldDescriptorProto) IsScalar() bool { … }