mirror of
https://github.com/regclient/regclient.git
synced 2025-04-18 22:44:00 +03:00
I feel like I need to explain, this is all to move the descriptor package. The platform package could not use the predefined errors in types because of a circular dependency from descriptor. The most appropriate way to reorg this is to move descriptor out of the type package since it was more complex than a self contained type. When doing that, type aliases were needed to avoid breaking changes to existing users. Those aliases themselves caused circular dependency loops because of the media types and errors, so those were also pulled out to separate packages. All of the old values were aliased and deprecated, and to fix the linter, those deprecations were fixed by updating the imports... everywhere. Signed-off-by: Brandon Mitchell <git@bmitch.net>
63 lines
1.6 KiB
Go
63 lines
1.6 KiB
Go
package blob
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
// crypto libraries included for go-digest
|
|
_ "crypto/sha256"
|
|
_ "crypto/sha512"
|
|
|
|
"github.com/opencontainers/go-digest"
|
|
|
|
"github.com/regclient/regclient/types/descriptor"
|
|
"github.com/regclient/regclient/types/ref"
|
|
)
|
|
|
|
// Common was previously an interface. A type alias is provided for upgrades.
|
|
type Common = *BCommon
|
|
|
|
// BCommon is a common struct for all blobs which includes various shared methods.
|
|
type BCommon struct {
|
|
r ref.Ref
|
|
desc descriptor.Descriptor
|
|
blobSet bool
|
|
rawHeader http.Header
|
|
resp *http.Response
|
|
}
|
|
|
|
// GetDescriptor returns the descriptor associated with the blob.
|
|
func (c *BCommon) GetDescriptor() descriptor.Descriptor {
|
|
return c.desc
|
|
}
|
|
|
|
// Digest returns the provided or calculated digest of the blob.
|
|
//
|
|
// Deprecated: Digest should be replaced by GetDescriptor().Digest, see [GetDescriptor].
|
|
func (c *BCommon) Digest() digest.Digest {
|
|
return c.desc.Digest
|
|
}
|
|
|
|
// Length returns the provided or calculated length of the blob.
|
|
//
|
|
// Deprecated: Length should be replaced by GetDescriptor().Size, see [GetDescriptor].
|
|
func (c *BCommon) Length() int64 {
|
|
return c.desc.Size
|
|
}
|
|
|
|
// MediaType returns the Content-Type header received from the registry.
|
|
//
|
|
// Deprecated: MediaType should be replaced by GetDescriptor().MediaType, see [GetDescriptor].
|
|
func (c *BCommon) MediaType() string {
|
|
return c.desc.MediaType
|
|
}
|
|
|
|
// RawHeaders returns the headers received from the registry.
|
|
func (c *BCommon) RawHeaders() http.Header {
|
|
return c.rawHeader
|
|
}
|
|
|
|
// Response returns the response associated with the blob.
|
|
func (c *BCommon) Response() *http.Response {
|
|
return c.resp
|
|
}
|