github.com/stffabi/git-lfs@v2.3.5-0.20180214015214-8eeaa8d88902+incompatible/git/odb/pack/type.go (about) 1 package pack 2 3 import ( 4 "errors" 5 "fmt" 6 ) 7 8 // PackedObjectType is a constant type that is defined for all valid object 9 // types that a packed object can represent. 10 type PackedObjectType uint8 11 12 const ( 13 // TypeNone is the zero-value for PackedObjectType, and represents the 14 // absence of a type. 15 TypeNone PackedObjectType = iota 16 // TypeCommit is the PackedObjectType for commit objects. 17 TypeCommit 18 // TypeTree is the PackedObjectType for tree objects. 19 TypeTree 20 // Typeblob is the PackedObjectType for blob objects. 21 TypeBlob 22 // TypeTag is the PackedObjectType for tag objects. 23 TypeTag 24 25 // TypeObjectOffsetDelta is the type for OBJ_OFS_DELTA-typed objects. 26 TypeObjectOffsetDelta PackedObjectType = 6 27 // TypeObjectReferenceDelta is the type for OBJ_REF_DELTA-typed objects. 28 TypeObjectReferenceDelta PackedObjectType = 7 29 ) 30 31 // String implements fmt.Stringer and returns an encoding of the type valid for 32 // use in the loose object format protocol (see: package 'git/odb' for more). 33 // 34 // If the receiving instance is not defined, String() will panic(). 35 func (t PackedObjectType) String() string { 36 switch t { 37 case TypeNone: 38 return "<none>" 39 case TypeCommit: 40 return "commit" 41 case TypeTree: 42 return "tree" 43 case TypeBlob: 44 return "blob" 45 case TypeTag: 46 return "tag" 47 case TypeObjectOffsetDelta: 48 return "obj_ofs_delta" 49 case TypeObjectReferenceDelta: 50 return "obj_ref_delta" 51 } 52 53 panic(fmt.Sprintf("git/odb/pack: unknown object type: %d", t)) 54 } 55 56 var ( 57 errUnrecognizedObjectType = errors.New("git/odb/pack: unrecognized object type") 58 )