We should define Operation as func(context.Context, a A) (B, error), which is the most idiomatic implementation possible, and then take advantage of Operation.Apply to adapt the operation to become a Func.
The overall objective here is to cleanup and review dslx, then start using it in production and rewrite experiments using it. In turn, by doing that, we'll enable collecting better throttling metrics for experiments.
We should define Operation as
func(context.Context, a A) (B, error)
, which is the most idiomatic implementation possible, and then take advantage of Operation.Apply to adapt the operation to become a Func.The overall objective here is to cleanup and review dslx, then start using it in production and rewrite experiments using it. In turn, by doing that, we'll enable collecting better throttling metrics for experiments.