aboutsummaryrefslogtreecommitdiff
path: root/object/type.go
blob: d44b83faa36400682c235f8a58420d7eab4e4233 (about) (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package object

import objecttype "codeberg.org/lindenii/furgit/object/type"

// 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
	}
}