diff options
Diffstat (limited to 'object/type.go')
| -rw-r--r-- | object/type.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/object/type.go b/object/type.go new file mode 100644 index 00000000..70cc46bc --- /dev/null +++ b/object/type.go @@ -0,0 +1,20 @@ +package object + +import "codeberg.org/lindenii/furgit/objecttype" + +// TypeFor returns the Git object type for T when T is one of the standard +// parsed object types. +func TypeFor[T Object]() (objecttype.Type, bool) { + switch any(*new(T)).(type) { + case *Blob: + return objecttype.TypeBlob, true + case *Tree: + return objecttype.TypeTree, true + case *Commit: + return objecttype.TypeCommit, true + case *Tag: + return objecttype.TypeTag, true + default: + return 0, false + } +} |
