feat: unifood base with GET dishes (#1)

Features:
- CLI structure with verbs and resources
- Application config and parameters
- Output formatters
- Initial resource: dishes

Reviewed-on: #1
Co-authored-by: bdoerfchen <git@bissendorf.co>
Co-committed-by: bdoerfchen <git@bissendorf.co>
This commit is contained in:
2025-07-20 17:29:04 +00:00
committed by bissendorf
parent ad082a3f12
commit ec66365b5e
27 changed files with 893 additions and 0 deletions

33
util/slices.go Normal file
View File

@ -0,0 +1,33 @@
package util
func Transform[Tin any, Tout any](s []Tin, transformFn func(i *Tin) Tout) (out []Tout) {
out = make([]Tout, 0)
for _, item := range s {
out = append(out, transformFn(&item))
}
return
}
func Select[T any](s []T, selectFn func(i *T) bool) (out []T) {
out = make([]T, 0)
for _, item := range s {
if selectFn(&item) {
out = append(out, item)
}
}
return
}
func Map[T any, Tkey comparable, Tval any](s []T, transformFn func(i *T) (Tkey, Tval)) (out map[Tkey]Tval) {
out = make(map[Tkey]Tval)
for _, i := range s {
key, val := transformFn(&i)
out[key] = val
}
return
}