code: func (sh *Handler) DescribeLocked(ctx context.Context, dr *DescribeRequest) (dres *DescribeResponse, err error) {
  	if verboseDescribe {
  		t0 := time.Now()
  		defer func() {
  			td := time.Since(t0)
  			var num int
  			if dres != nil {
  				num = len(dres.Meta)
  			}
  			log.Printf("Described %d blobs in %v", num, td)
  		}()
  	}
  	sh.initDescribeRequest(dr)
  	if dr.BlobRef.Valid() {
  		dr.StartDescribe(ctx, dr.BlobRef, dr.depth())
  	}
  	for _, br := range dr.BlobRefs {
  		dr.StartDescribe(ctx, br, dr.depth())
  	}
  	if err := dr.expandRules(ctx); err != nil {
  		return nil, err
  	}
  	metaMap, err := dr.metaMap()
  	if err != nil {
  		return nil, err
  	}
  	return &DescribeResponse{metaMap}, nil
  }
docs: // DescribeLocked returns a response for the given describe request. It is the
  // caller's responsibility to lock the search handler's index.