diff options
Diffstat (limited to 'plumbing/object.go')
-rw-r--r-- | plumbing/object.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/plumbing/object.go b/plumbing/object.go index 3304da2..2655dee 100644 --- a/plumbing/object.go +++ b/plumbing/object.go @@ -23,6 +23,17 @@ type EncodedObject interface { Writer() (io.WriteCloser, error) } +// DeltaObject is an EncodedObject representing a delta. +type DeltaObject interface { + EncodedObject + // BaseHash returns the hash of the object used as base for this delta. + BaseHash() Hash + // ActualHash returns the hash of the object after applying the delta. + ActualHash() Hash + // Size returns the size of the object after applying the delta. + ActualSize() int64 +} + // ObjectType internal object type // Integer values from 0 to 7 map to those exposed by git. // AnyObject is used to represent any from 0 to 7. @@ -71,6 +82,12 @@ func (t ObjectType) Valid() bool { return t >= CommitObject && t <= REFDeltaObject } +// IsDelta returns true for any ObjectTyoe that represents a delta (i.e. +// REFDeltaObject or OFSDeltaObject). +func (t ObjectType) IsDelta() bool { + return t == REFDeltaObject || t == OFSDeltaObject +} + // ParseObjectType parses a string representation of ObjectType. It returns an // error on parse failure. func ParseObjectType(value string) (typ ObjectType, err error) { |