MCPcopy Index your code
hub / github.com/dagger/dagger / appendAssign

Function appendAssign

dagql/objects.go:1814–1831  ·  view source on GitHub ↗
(slice reflect.Value, val any)

Source from the content-addressed store, hash-verified

1812}
1813
1814func appendAssign(slice reflect.Value, val any) error {
1815 if slice.Kind() != reflect.Slice {
1816 return fmt.Errorf("appendAssign: expected slice, got %v", slice.Kind())
1817 }
1818 if reflect.TypeOf(val).AssignableTo(slice.Type().Elem()) {
1819 slice.Set(reflect.Append(slice, reflect.ValueOf(val)))
1820 return nil
1821 } else if setter, ok := val.(Setter); ok {
1822 dst := reflect.New(slice.Type().Elem()).Elem()
1823 if err := setter.SetField(dst); err != nil {
1824 return fmt.Errorf("appendAssign: Setter.SetField: %w", err)
1825 }
1826 slice.Set(reflect.Append(slice, dst))
1827 return nil
1828 } else {
1829 return fmt.Errorf("appendAssign: cannot assign %T to %s", val, slice.Type())
1830 }
1831}

Callers 1

SelectMethod · 0.85

Calls 6

TypeMethod · 0.65
SetMethod · 0.65
NewMethod · 0.65
SetFieldMethod · 0.65
KindMethod · 0.45
AppendMethod · 0.45

Tested by

no test coverage detected