func (c *committedContentIndex) missingIndexBlobs(ctx context.Context, blobs []blob.ID) (<-chan blob.ID, error) {
	ch := make(chan blob.ID, len(blobs))
	defer close(ch)

	for _, id := range blobs {
		has, err := c.cache.hasIndexBlobID(ctx, id)
		if err != nil {
			return nil, errors.Wrapf(err, "error determining whether index blob %v has been downloaded", id)
		}

		if !has {
			ch <- id
		}
	}

	return ch, nil
}
// missingIndexBlobs returns a closed channel filled with blob IDs that are not in committedContents cache.
missingIndexBlobs returns a closed channel filled with blob IDs that are not in committedContents cache.
// missingIndexBlobs returns a closed channel filled with blob IDs that are not in committedContents cache .
func (c *committedContentIndex) missingIndexBlobs(ctx context.Context, blobs []blob.ID) (<-chan blob.ID, error) {
	ch := make(chan blob.ID, len(blobs))
	defer close(ch)
	for _, id := range blobs {
		has, err := c.cache.hasIndexBlobID(ctx, id)
		if err != nil {
			return nil, errors.Wrapf(err, "error determining whether index blob %v has been downloaded", id)
		}
		if !has {
			ch <- id
		}
	}
	return ch, nil
}
func ( c * committedContentIndex ) missingIndexBlobs ( ctx context . Context , blobs [ ] blob . ID ) ( <- chan blob . ID , error ) { ch := make ( chan blob . ID , len ( blobs ) ) defer close ( ch ) for _ , id := range blobs { has , err := c . cache . hasIndexBlobID ( ctx , id ) if err != nil { return nil , errors . Wrapf ( err , " " , id ) } if ! has { ch <- id } } return ch , nil }
missingIndexBlobs returns a closed channel filled with blob IDs that are not in committedContents cache.
missingIndexBlobs returns a closed channel filled with blob IDs that are not in committedContents cache .