This trait wraps an execution block, and applies a FlowBehavior to it on entry, exit, and exception.
Note that the return value must have a type class instance of ToArgument in scope, so that
the logging statement can render it appropriately.
You should use Condition.never explicitly here to disable logging, as it will shortcut to a Noop
implementation. Benchmarks show a noop flow takes 42ns to execute, 4.5ns if you remove sourcecode.Args
from the method signature.
This trait wraps an execution block, and applies a FlowBehavior to it on entry, exit, and exception.
Note that the return value must have a type class instance of ToArgument in scope, so that the logging statement can render it appropriately.
You should use
Condition.never
explicitly here to disable logging, as it will shortcut to a Noop implementation. Benchmarks show a noop flow takes 42ns to execute, 4.5ns if you remove sourcecode.Args from the method signature.