aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/app/setuid/strings.go
blob: f5b51344f0fb19157bcfaff0466ef52576ea6558 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package setuid

import (
	"strconv"

	"git.gensokyo.uk/security/fortify/fst"
)

func newInt(v int) *stringPair[int]        { return &stringPair[int]{v, strconv.Itoa(v)} }
func newID(id *fst.ID) *stringPair[fst.ID] { return &stringPair[fst.ID]{*id, id.String()} }

// stringPair stores a value and its string representation.
type stringPair[T comparable] struct {
	v T
	s string
}

func (s *stringPair[T]) unwrap() T      { return s.v }
func (s *stringPair[T]) String() string { return s.s }