From bf70c5552d9c00b59ed271d0c8237c1c944ed074 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Fri, 6 Mar 2026 10:44:22 +0800 Subject: objecttype: Split files --- objecttype/name.go | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 objecttype/name.go (limited to 'objecttype/name.go') diff --git a/objecttype/name.go b/objecttype/name.go new file mode 100644 index 00000000..870ac1e4 --- /dev/null +++ b/objecttype/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 + } +} -- cgit v1.3.1-10-gc9f91