package main import ( "strconv" "encoding/json" "log" "strings" ) func maybeSuffix(counter int) string { if counter == 0 { return "" } return strconv.Itoa(counter+1) } func titleCase(s string) string { return strings.ToUpper(s[0:1]) + s[1:] } func prettyPrint(obj interface{}) { jb, err := json.MarshalIndent(obj, "", " ") if err != nil { panic(err) } log.Println(string(jb)) } func ifv[T any](condition bool, trueval T, falseval T) T { if condition { return trueval } return falseval } func addr[T any](s T) *T { return &s } func slice_to_set[T comparable](list []T) map[T]struct{} { ret := make(map[T]struct{}, len(list)) for _, v := range list { ret[v] = struct{}{} } return ret } func slice_copy[T comparable](input []T) []T { ret := make([]T, len(input)) for i, elem := range input { ret[i] = elem } return ret }