28 lines
980 B
Go
28 lines
980 B
Go
package pack
|
|
|
|
// Object is an encapsulation of an object found in a packfile, or a packed
|
|
// object.
|
|
type Object struct {
|
|
// data is the front-most element of the delta-base chain, and when
|
|
// resolved, yields the uncompressed data of this object.
|
|
data Chain
|
|
// typ is the underlying object's type. It is not the type of the
|
|
// front-most chain element, rather, the type of the actual object.
|
|
typ PackedObjectType
|
|
}
|
|
|
|
// Unpack resolves the delta-base chain and returns an uncompressed, unpacked,
|
|
// and full representation of the data encoded by this object.
|
|
//
|
|
// If there was any error in unpacking this object, it is returned immediately,
|
|
// and the object's data can be assumed to be corrupt.
|
|
func (o *Object) Unpack() ([]byte, error) {
|
|
return o.data.Unpack()
|
|
}
|
|
|
|
// Type returns the underlying object's type. Rather than the type of the
|
|
// front-most delta-base component, it is the type of the object itself.
|
|
func (o *Object) Type() PackedObjectType {
|
|
return o.typ
|
|
}
|