Skip to content

Commit a2d749d

Browse files
committed
Removed loop, simplified function
1 parent 49a7303 commit a2d749d

File tree

3 files changed

+15
-13
lines changed

3 files changed

+15
-13
lines changed

go.mod

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ go 1.18
55
require (
66
github.com/arduino/pluggable-monitor-protocol-handler v0.9.2
77
go.bug.st/serial v1.3.5
8+
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e
89
)
910

1011
require (

go.sum

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
1313
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
1414
go.bug.st/serial v1.3.5 h1:k50SqGZCnHZ2MiBQgzccXWG+kd/XpOs1jUljpDDKzaE=
1515
go.bug.st/serial v1.3.5/go.mod h1:z8CesKorE90Qr/oRSJiEuvzYRKol9r/anJZEb5kt304=
16+
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
17+
golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
1618
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a h1:dGzPydgVsqGcTRVwiLJ1jVbufYwmzD3LfVPLKsKg+0k=
1719
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
1820
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=

main.go

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import (
2828
"github.com/arduino/serial-monitor/args"
2929
"github.com/arduino/serial-monitor/version"
3030
"go.bug.st/serial"
31+
"golang.org/x/exp/slices"
3132
)
3233

3334
func main() {
@@ -103,21 +104,19 @@ func (d *SerialMonitor) Configure(parameterName string, value string) error {
103104
if !ok {
104105
return fmt.Errorf("could not find parameter named %s", parameterName)
105106
}
106-
for _, i := range parameter.Values {
107-
if i == value {
108-
oldValue := parameter.Selected
109-
parameter.Selected = value
110-
if d.openedPort {
111-
err := d.serialPort.SetMode(d.getMode())
112-
if err != nil {
113-
parameter.Selected = oldValue
114-
return errors.New(err.Error())
115-
}
116-
}
117-
return nil
107+
if !slices.Contains(parameter.Values, value) {
108+
return fmt.Errorf("invalid value for parameter %s: %s", parameterName, value)
109+
}
110+
oldValue := parameter.Selected
111+
parameter.Selected = value
112+
if d.openedPort {
113+
err := d.serialPort.SetMode(d.getMode())
114+
if err != nil {
115+
parameter.Selected = oldValue
116+
return errors.New(err.Error())
118117
}
119118
}
120-
return fmt.Errorf("invalid value for parameter %s: %s", parameterName, value)
119+
return nil
121120
}
122121

123122
// Open is the handler for the pluggable-monitor OPEN command

0 commit comments

Comments
 (0)