Skip to content

Commit 563ba3a

Browse files
authored
Refactor generator settings loading and decoding logic to use switch statements for improved readability and maintainability. (#186)
1 parent eac9a58 commit 563ba3a

File tree

3 files changed

+12
-9
lines changed

3 files changed

+12
-9
lines changed

cmd/pkl-gen-go/pkl-gen-go.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -287,11 +287,12 @@ func loadGeneratorSettings(cmd *cobra.Command) (generatorsettings.GeneratorSetti
287287
panic(err)
288288
}
289289
var source *pkl.ModuleSource
290-
if generatorSettingsPath != "" {
290+
switch {
291+
case generatorSettingsPath != "":
291292
source = pkl.FileSource(generatorSettingsPath)
292-
} else if fileExists("generator-settings.pkl") {
293+
case fileExists("generator-settings.pkl"):
293294
source = pkl.FileSource("generator-settings.pkl")
294-
} else {
295+
default:
295296
source = generatorSettingsSource()
296297
}
297298
s, err := generatorsettings.Load(context.Background(), evaluator, source)

pkl/decode_struct.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -268,11 +268,12 @@ func (d *decoder) decodeStructField(fields map[string]structField, out *reflect.
268268
}
269269
decodedType := decodedValue.Type()
270270
field := out.FieldByName(sf.Name)
271-
if decodedType.AssignableTo(field.Type()) {
271+
switch {
272+
case decodedType.AssignableTo(field.Type()):
272273
field.Set(*decodedValue)
273-
} else if decodedType.ConvertibleTo(field.Type()) {
274+
case decodedType.ConvertibleTo(field.Type()):
274275
field.Set(field.Convert(field.Type()))
275-
} else {
276+
default:
276277
return fmt.Errorf("unable to assign or convert value for property `%s` of type `%s` to field `%s.%s` of type `%s`", propertyName, decodedType.String(), out.Type().String(), sf.Name, field.Type().String())
277278
}
278279
return d.skip(length - 3)

pkl/decoder.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,11 +140,12 @@ func (d *decoder) decodePointer(inType reflect.Type) (*reflect.Value, error) {
140140
return val, nil
141141
}
142142
ret := reflect.New(inType.Elem())
143-
if val.Type().AssignableTo(ret.Elem().Type()) {
143+
switch {
144+
case val.Type().AssignableTo(ret.Elem().Type()):
144145
ret.Elem().Set(*val)
145-
} else if val.Type().ConvertibleTo(ret.Elem().Type()) {
146+
case val.Type().ConvertibleTo(ret.Elem().Type()):
146147
ret.Elem().Set(val.Convert(ret.Elem().Type()))
147-
} else {
148+
default:
148149
return nil, fmt.Errorf("unable to assign or convert value of type `%s` to pointer of type `%s`", val.Type(), ret.Type())
149150
}
150151
return &ret, nil

0 commit comments

Comments
 (0)