summaryrefslogtreecommitdiff
path: root/tests/examplefiles/go/generics.go
blob: be88160f476ae9b349b7c2e06b0aa49a3412de5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package generics

type Int interface {
	~int | ~int8 | ~int16 | ~int32 | ~int64
}

func Abs[T Int](v T) T {
	if v < 0 {
		return -v
	} else {
		return v
	}
}

func Equal[T comparable](a, b T) bool {
	return a == b
}

func PtrOf[T any](v T) *T {
	return &v
}