1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-01-27 06:52:50 -05:00

matugen: fix adw-gtk3 setting in light mode

- and add models.Get/GetOr helpers
This commit is contained in:
bbedward
2026-01-01 23:13:12 -05:00
parent 5e111d89a5
commit c1d57946d9
23 changed files with 162 additions and 132 deletions

View File

@@ -5,6 +5,7 @@ import (
"net"
"github.com/AvengeMedia/DankMaterialShell/core/internal/log"
"github.com/AvengeMedia/DankMaterialShell/core/internal/server/params"
)
type Request struct {
@@ -13,6 +14,15 @@ type Request struct {
Params map[string]any `json:"params,omitempty"`
}
func Get[T any](r Request, key string) (T, bool) {
v, err := params.Get[T](r.Params, key)
return v, err == nil
}
func GetOr[T any](r Request, key string, def T) T {
return params.GetOpt(r.Params, key, def)
}
type Response[T any] struct {
ID int `json:"id,omitempty"`
Result *T `json:"result,omitempty"`

View File

@@ -0,0 +1,52 @@
package models
import "testing"
func TestGet(t *testing.T) {
req := Request{Params: map[string]any{"name": "test", "count": 42, "enabled": true}}
name, ok := Get[string](req, "name")
if !ok || name != "test" {
t.Errorf("Get[string] = %q, %v; want 'test', true", name, ok)
}
count, ok := Get[int](req, "count")
if !ok || count != 42 {
t.Errorf("Get[int] = %d, %v; want 42, true", count, ok)
}
enabled, ok := Get[bool](req, "enabled")
if !ok || !enabled {
t.Errorf("Get[bool] = %v, %v; want true, true", enabled, ok)
}
_, ok = Get[string](req, "missing")
if ok {
t.Error("Get missing key should return false")
}
_, ok = Get[int](req, "name")
if ok {
t.Error("Get wrong type should return false")
}
}
func TestGetOr(t *testing.T) {
req := Request{Params: map[string]any{"name": "test", "enabled": true}}
if v := GetOr(req, "name", "default"); v != "test" {
t.Errorf("GetOr existing = %q; want 'test'", v)
}
if v := GetOr(req, "missing", "default"); v != "default" {
t.Errorf("GetOr missing = %q; want 'default'", v)
}
if v := GetOr(req, "enabled", false); !v {
t.Errorf("GetOr bool = %v; want true", v)
}
if v := GetOr(req, "name", 0); v != 0 {
t.Errorf("GetOr wrong type = %d; want 0 (default)", v)
}
}