code: func GetDescriptorSet(serviceName string) (*descriptor.FileDescriptorSet, error) {
  	e := getEntry(serviceName)
  	if e == nil {
  		return nil, nil
  	}
  	e.init.Do(func() {
  		var unGzip io.Reader
  		unGzip, e.err = gzip.NewReader(bytes.NewBuffer(e.compressedBytes))
  		if e.err != nil {
  			return
  		}
  
  		var uncompressed []byte
  		uncompressed, e.err = ioutil.ReadAll(unGzip)
  		if e.err != nil {
  			return
  		}
  
  		var unmarshaled descriptor.FileDescriptorSet
  		e.err = proto.Unmarshal(uncompressed, &unmarshaled)
  		if e.err != nil {
  			return
  		}
  		e.unmarshaled = &unmarshaled
  	})
  	return e.unmarshaled, e.err
  }
docs: // GetDescriptorSet returns a descriptor set that contains the request service,
  // its message types and all transitive dependencies.
  // Returns (nil, nil) if the service descriptor is unknown.
  //
  // Do NOT modify the returned descriptor.