@@ -1111,28 +1111,38 @@ func rpcKeyboardReportMulti(ctx context.Context, macro []map[string]any) (usbgad
1111
1111
}
1112
1112
1113
1113
var modifier byte
1114
- if m , ok := step ["modifier" ].(float64 ); ok {
1114
+ switch m := step ["modifier" ].(type ) {
1115
+ case uint8 :
1116
+ modifier = m
1117
+ case int :
1118
+ modifier = byte (m )
1119
+ case float64 :
1115
1120
modifier = byte (int (m ))
1116
- } else if mi , ok := step ["modifier" ].(int ); ok {
1117
- modifier = byte (mi )
1118
- } else if mb , ok := step ["modifier" ].(uint8 ); ok {
1119
- modifier = mb
1121
+ default :
1122
+ return last , fmt .Errorf ("invalid modifier type: %T" , m )
1120
1123
}
1121
1124
1122
1125
var keys []byte
1123
- if arr , ok := step ["keys" ].([]any ); ok {
1126
+ switch k := step ["keys" ].(type ) {
1127
+ case []byte :
1128
+ keys = k
1129
+ case []any :
1130
+ arr := k
1124
1131
keys = make ([]byte , 0 , len (arr ))
1125
1132
for _ , v := range arr {
1126
- if f , ok := v .(float64 ); ok {
1133
+ switch f := v .(type ) {
1134
+ case uint8 :
1135
+ keys = append (keys , f )
1136
+ case int :
1137
+ keys = append (keys , byte (f ))
1138
+ case float64 :
1127
1139
keys = append (keys , byte (int (f )))
1128
- } else if i , ok := v .(int ); ok {
1129
- keys = append (keys , byte (i ))
1130
- } else if b , ok := v .(uint8 ); ok {
1131
- keys = append (keys , b )
1140
+ default :
1141
+ return last , fmt .Errorf ("invalid key type: %T" , f )
1132
1142
}
1133
1143
}
1134
- } else if bs , ok := step [ "keys" ].([] byte ); ok {
1135
- keys = bs
1144
+ default :
1145
+ return last , fmt . Errorf ( "invalid keys type: %T" , k )
1136
1146
}
1137
1147
1138
1148
// Use context-aware sleep that can be cancelled
0 commit comments