339
input I,
340
opts ...TransitionOption,
342
>
var output O
343
>
344
>
ref, err := convertComponentRef(r)
345
>
if err != nil {
346
return output, nil, err
347
}
348
349
>
var options TransitionOptions
engine.go
350
>
for _, opt := range opts {
351
opt(&options)
352
}
353
>
ref, err = ref.forConsistencyLevel(options.ConsistencyLevel)
engine.go
354
>
if err != nil {
355
return output, nil, err
356
}
357
358
>
newSerializedRef, err := engineFromContext(ctx).UpdateComponent(
engine.go
359
>
ctx,
360
>
ref,
361
>
func(mutableContext MutableContext, c Component) (retErr error) {
362
>
defer log.CapturePanic(mutableContext.Logger(), &retErr)
363
>
364
>
var err error
365
>
output, err = updateFn(
366
>
c.(C),
367
>
mutableContext,
368
>
input,
369
>
)
370
>
return err
371
>
},
372
opts...,
373
)
374
376
return output, nil, err
377
}