summaryrefslogtreecommitdiff
path: root/reflect.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2024-01-11 16:41:37 -0600
committerJeff Carr <[email protected]>2024-01-11 16:41:37 -0600
commitbc292d0968f5af3427b4459b855cb709a25776f2 (patch)
tree6c5d6924067a302e0f53ec7d8dab5875e5f1d501 /reflect.go
parentab0d77d388af861a1900537d95bf0a5ad35ede97 (diff)
type value any
move the common code here. add docs
Diffstat (limited to 'reflect.go')
-rw-r--r--reflect.go96
1 files changed, 96 insertions, 0 deletions
diff --git a/reflect.go b/reflect.go
new file mode 100644
index 0000000..783ecd0
--- /dev/null
+++ b/reflect.go
@@ -0,0 +1,96 @@
+package widget
+
+import (
+ "reflect"
+ "strconv"
+)
+
+func GetString(A any) string {
+ if A == nil {
+ // log.Warn("getString() got nil")
+ return ""
+ }
+ var k reflect.Kind
+ k = reflect.TypeOf(A).Kind()
+
+ switch k {
+ case reflect.Int:
+ var i int
+ i = A.(int)
+ return strconv.Itoa(i)
+ case reflect.String:
+ return A.(string)
+ case reflect.Bool:
+ if A.(bool) == true {
+ return "true"
+ } else {
+ return "false"
+ }
+ default:
+ // log.Warn("getString uknown kind", k, "value =", A)
+ return ""
+ }
+ return ""
+}
+
+// work like unix os.Exec() ? everything other than 0 is false
+func GetBool(A any) bool {
+ if A == nil {
+ // log.Warn("getBool() got nil")
+ return false
+ }
+ var k reflect.Kind
+ k = reflect.TypeOf(A).Kind()
+
+ switch k {
+ case reflect.Int:
+ var i int
+ i = A.(int)
+ if i == 0 {
+ return true
+ } else {
+ return false
+ }
+ case reflect.String:
+ if A.(string) == "true" {
+ return true
+ } else {
+ return false
+ }
+ case reflect.Bool:
+ return A.(bool)
+ default:
+ // log.Warn("getString uknown kind", k, "value =", A)
+ return false
+ }
+ return false
+}
+
+// work like unix? everything other than 0 is false
+func GetInt(A any) int {
+ if A == nil {
+ // log.Warn("getBool() got nil")
+ return -1
+ }
+ var k reflect.Kind
+ k = reflect.TypeOf(A).Kind()
+
+ switch k {
+ case reflect.Int:
+ return A.(int)
+ case reflect.String:
+ tmp := A.(string)
+ i, _ := strconv.Atoi(tmp)
+ return i
+ case reflect.Bool:
+ if A.(bool) {
+ return 0
+ } else {
+ return -1
+ }
+ default:
+ // log.Warn("getString uknown kind", k, "value =", A)
+ return -1
+ }
+ return -1
+}