initializeFromArgs implements mixed parameter constructor strategy
(instance interface{}, args []*Value, typ reflect.Type, ctx *Context)
| 174 | |
| 175 | // initializeFromArgs implements mixed parameter constructor strategy |
| 176 | func initializeFromArgs(instance interface{}, args []*Value, typ reflect.Type, ctx *Context) error { |
| 177 | // Smart strategy: single object argument uses named parameters |
| 178 | if len(args) == 1 && args[0].IsObject() && !args[0].IsArray() { |
| 179 | return initializeFromObjectArgs(instance, args[0], typ, ctx) |
| 180 | } |
| 181 | |
| 182 | // Otherwise use positional parameters |
| 183 | return initializeFromPositionalArgs(instance, args, typ, ctx) |
| 184 | } |
| 185 | |
| 186 | // initializeFromPositionalArgs initializes struct fields from positional arguments |
| 187 | func initializeFromPositionalArgs(instance interface{}, args []*Value, typ reflect.Type, ctx *Context) error { |
no test coverage detected