diff options
| author | Nippy <nippy@rp1.hu> | 2026-05-09 13:33:09 +0200 |
|---|---|---|
| committer | Nippy <nippy@rp1.hu> | 2026-05-09 13:33:09 +0200 |
| commit | a2b924d7e9492b978ad6dc33b6c1ffcb304b4bc5 (patch) | |
| tree | 1a8769217f84bfe9d6216fafaadaf8cdd876d457 /raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/dbusutil | |
| parent | 34b9c34f982b2596cfa9e368a2d7f74e9a17477c (diff) | |
| download | RaveOS-PKGBUILD-a2b924d7e9492b978ad6dc33b6c1ffcb304b4bc5.tar.gz RaveOS-PKGBUILD-a2b924d7e9492b978ad6dc33b6c1ffcb304b4bc5.zip | |
raveos update
Diffstat (limited to 'raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/dbusutil')
| -rw-r--r-- | raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/dbusutil/variant.go | 95 | ||||
| -rw-r--r-- | raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/dbusutil/variant_test.go | 155 |
2 files changed, 0 insertions, 250 deletions
diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/dbusutil/variant.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/dbusutil/variant.go deleted file mode 100644 index 4080b66..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/dbusutil/variant.go +++ /dev/null @@ -1,95 +0,0 @@ -package dbusutil - -import "github.com/godbus/dbus/v5" - -func As[T any](v dbus.Variant) (T, bool) { - val, ok := v.Value().(T) - return val, ok -} - -func AsOr[T any](v dbus.Variant, def T) T { - if val, ok := v.Value().(T); ok { - return val - } - return def -} - -func Get[T any](m map[string]dbus.Variant, key string) (T, bool) { - v, ok := m[key] - if !ok { - var zero T - return zero, false - } - return As[T](v) -} - -func GetOr[T any](m map[string]dbus.Variant, key string, def T) T { - v, ok := m[key] - if !ok { - return def - } - return AsOr(v, def) -} - -func Normalize(v any) any { - switch val := v.(type) { - case dbus.Variant: - return Normalize(val.Value()) - case dbus.ObjectPath: - return string(val) - case []dbus.ObjectPath: - result := make([]string, len(val)) - for i, p := range val { - result[i] = string(p) - } - return result - case map[string]dbus.Variant: - result := make(map[string]any) - for k, vv := range val { - result[k] = Normalize(vv.Value()) - } - return result - case map[string]any: - result := make(map[string]any) - for k, vv := range val { - result[k] = Normalize(vv) - } - return result - case map[dbus.ObjectPath]map[string]map[string]dbus.Variant: - result := make(map[string]any) - for path, ifaces := range val { - ifaceMap := make(map[string]any) - for ifaceName, props := range ifaces { - propMap := make(map[string]any) - for propName, propVal := range props { - propMap[propName] = Normalize(propVal.Value()) - } - ifaceMap[ifaceName] = propMap - } - result[string(path)] = ifaceMap - } - return result - case []any: - result := make([]any, len(val)) - for i, item := range val { - result[i] = Normalize(item) - } - return result - case []dbus.Variant: - result := make([]any, len(val)) - for i, item := range val { - result[i] = Normalize(item.Value()) - } - return result - default: - return v - } -} - -func NormalizeSlice(values []any) []any { - result := make([]any, len(values)) - for i, v := range values { - result[i] = Normalize(v) - } - return result -} diff --git a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/dbusutil/variant_test.go b/raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/dbusutil/variant_test.go deleted file mode 100644 index a927e54..0000000 --- a/raveos-hyprland-theme/theme-data/DankMaterialShell/core/pkg/dbusutil/variant_test.go +++ /dev/null @@ -1,155 +0,0 @@ -package dbusutil - -import ( - "testing" - - "github.com/godbus/dbus/v5" - "github.com/stretchr/testify/assert" -) - -func TestAs(t *testing.T) { - t.Run("string", func(t *testing.T) { - v := dbus.MakeVariant("hello") - val, ok := As[string](v) - assert.True(t, ok) - assert.Equal(t, "hello", val) - }) - - t.Run("bool", func(t *testing.T) { - v := dbus.MakeVariant(true) - val, ok := As[bool](v) - assert.True(t, ok) - assert.True(t, val) - }) - - t.Run("int32", func(t *testing.T) { - v := dbus.MakeVariant(int32(42)) - val, ok := As[int32](v) - assert.True(t, ok) - assert.Equal(t, int32(42), val) - }) - - t.Run("wrong type", func(t *testing.T) { - v := dbus.MakeVariant("hello") - _, ok := As[int](v) - assert.False(t, ok) - }) -} - -func TestAsOr(t *testing.T) { - t.Run("exists", func(t *testing.T) { - v := dbus.MakeVariant("hello") - val := AsOr(v, "default") - assert.Equal(t, "hello", val) - }) - - t.Run("wrong type uses default", func(t *testing.T) { - v := dbus.MakeVariant(123) - val := AsOr(v, "default") - assert.Equal(t, "default", val) - }) -} - -func TestGet(t *testing.T) { - m := map[string]dbus.Variant{ - "name": dbus.MakeVariant("test"), - "enabled": dbus.MakeVariant(true), - "count": dbus.MakeVariant(int32(5)), - } - - t.Run("exists", func(t *testing.T) { - val, ok := Get[string](m, "name") - assert.True(t, ok) - assert.Equal(t, "test", val) - }) - - t.Run("missing key", func(t *testing.T) { - _, ok := Get[string](m, "missing") - assert.False(t, ok) - }) - - t.Run("wrong type", func(t *testing.T) { - _, ok := Get[int](m, "name") - assert.False(t, ok) - }) -} - -func TestGetOr(t *testing.T) { - m := map[string]dbus.Variant{ - "name": dbus.MakeVariant("test"), - } - - t.Run("exists", func(t *testing.T) { - val := GetOr(m, "name", "default") - assert.Equal(t, "test", val) - }) - - t.Run("missing uses default", func(t *testing.T) { - val := GetOr(m, "missing", "default") - assert.Equal(t, "default", val) - }) - - t.Run("wrong type uses default", func(t *testing.T) { - val := GetOr(m, "name", 42) - assert.Equal(t, 42, val) - }) -} - -func TestNormalize(t *testing.T) { - t.Run("variant unwrap", func(t *testing.T) { - v := dbus.MakeVariant("hello") - result := Normalize(v) - assert.Equal(t, "hello", result) - }) - - t.Run("nested variant", func(t *testing.T) { - v := dbus.MakeVariant(dbus.MakeVariant("nested")) - result := Normalize(v) - assert.Equal(t, "nested", result) - }) - - t.Run("object path", func(t *testing.T) { - v := dbus.ObjectPath("/org/test") - result := Normalize(v) - assert.Equal(t, "/org/test", result) - }) - - t.Run("object path slice", func(t *testing.T) { - v := []dbus.ObjectPath{"/org/a", "/org/b"} - result := Normalize(v) - assert.Equal(t, []string{"/org/a", "/org/b"}, result) - }) - - t.Run("variant map", func(t *testing.T) { - v := map[string]dbus.Variant{ - "key": dbus.MakeVariant("value"), - } - result := Normalize(v) - expected := map[string]any{"key": "value"} - assert.Equal(t, expected, result) - }) - - t.Run("any slice", func(t *testing.T) { - v := []any{dbus.MakeVariant("a"), dbus.ObjectPath("/b")} - result := Normalize(v) - expected := []any{"a", "/b"} - assert.Equal(t, expected, result) - }) - - t.Run("passthrough primitives", func(t *testing.T) { - assert.Equal(t, "hello", Normalize("hello")) - assert.Equal(t, 42, Normalize(42)) - assert.Equal(t, true, Normalize(true)) - }) -} - -func TestNormalizeSlice(t *testing.T) { - input := []any{ - dbus.MakeVariant("a"), - dbus.ObjectPath("/b"), - "c", - } - result := NormalizeSlice(input) - expected := []any{"a", "/b", "c"} - assert.Equal(t, expected, result) -} |