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

import (
	"strconv"

	"hakurei.app/internal/app/state"
)

func newInt(v int) *stringPair[int]            { return &stringPair[int]{v, strconv.Itoa(v)} }
func newID(id *state.ID) *stringPair[state.ID] { return &stringPair[state.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 }