Templates: sort required params first (#26775)
This commit is contained in:
parent
aa1fdab0b6
commit
1c49be86fa
3 changed files with 16 additions and 1 deletions
|
|
@ -14,6 +14,7 @@ params:
|
|||
description:
|
||||
en: Modbus Type
|
||||
de: Modbus Typ
|
||||
required: true
|
||||
- name: host
|
||||
required: true
|
||||
description:
|
||||
|
|
|
|||
|
|
@ -73,7 +73,7 @@ func fromBytes(b []byte) (Template, error) {
|
|||
return Template{}, err
|
||||
}
|
||||
|
||||
for _, f := range []func() error{tmpl.ResolvePresets, tmpl.ResolveGroup, tmpl.UpdateParamsWithDefaults, tmpl.UpdateModbusParamsWithDefaults, tmpl.Validate} {
|
||||
for _, f := range []func() error{tmpl.ResolvePresets, tmpl.ResolveGroup, tmpl.UpdateParamsWithDefaults, tmpl.UpdateModbusParamsWithDefaults, tmpl.SortRequiredParamsFirst, tmpl.Validate} {
|
||||
if err := f(); err != nil {
|
||||
return tmpl, fmt.Errorf("template '%s': %w", tmpl.Template, err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -65,6 +65,20 @@ func (t *Template) UpdateModbusParamsWithDefaults() error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (t *Template) SortRequiredParamsFirst() error {
|
||||
slices.SortStableFunc(t.Params, func(a, b Param) int {
|
||||
if a.Required && !b.Required {
|
||||
return -1
|
||||
}
|
||||
if b.Required && !a.Required {
|
||||
return +1
|
||||
}
|
||||
return 0
|
||||
})
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// validate the template (only rudimentary for now)
|
||||
func (t *Template) Validate() error {
|
||||
for _, c := range t.Capabilities {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue