diff options
| author | 2026-03-25 14:21:09 +0000 | |
|---|---|---|
| committer | 2026-03-25 14:21:09 +0000 | |
| commit | 7d9c128ce04875f970c78673500c0a492000398f (patch) | |
| tree | 4e65166a451f9970c5264fad72e9a8f9634eefb5 /object/type | |
| parent | research: Dynamic packfile log (diff) | |
| signature | No signature | |
*: objecttype, objectheader -> object/type, object/header
Diffstat (limited to 'object/type')
| -rw-r--r-- | object/type/name.go | 42 | ||||
| -rw-r--r-- | object/type/objecttype.go | 16 |
2 files changed, 58 insertions, 0 deletions
diff --git a/object/type/name.go b/object/type/name.go new file mode 100644 index 00000000..870ac1e4 --- /dev/null +++ b/object/type/name.go @@ -0,0 +1,42 @@ +package objecttype + +const ( + typeNameBlob = "blob" + typeNameTree = "tree" + typeNameCommit = "commit" + typeNameTag = "tag" +) + +// ParseName parses a canonical Git object type name. +func ParseName(name string) (Type, bool) { + switch name { + case typeNameBlob: + return TypeBlob, true + case typeNameTree: + return TypeTree, true + case typeNameCommit: + return TypeCommit, true + case typeNameTag: + return TypeTag, true + default: + return TypeInvalid, false + } +} + +// Name returns the canonical Git object type name. +func Name(ty Type) (string, bool) { + switch ty { + case TypeBlob: + return typeNameBlob, true + case TypeTree: + return typeNameTree, true + case TypeCommit: + return typeNameCommit, true + case TypeTag: + return typeNameTag, true + case TypeInvalid, TypeFuture, TypeOfsDelta, TypeRefDelta: + return "", false + default: + return "", false + } +} diff --git a/object/type/objecttype.go b/object/type/objecttype.go new file mode 100644 index 00000000..2e12dadc --- /dev/null +++ b/object/type/objecttype.go @@ -0,0 +1,16 @@ +// Package objecttype provides object type constants and names. +package objecttype + +// Type mirrors Git object type tags in packfiles. +type Type uint8 + +const ( + TypeInvalid Type = 0 + TypeCommit Type = 1 + TypeTree Type = 2 + TypeBlob Type = 3 + TypeTag Type = 4 + TypeFuture Type = 5 + TypeOfsDelta Type = 6 + TypeRefDelta Type = 7 +) |
