We should at the minimum mention that in the docs. We should also see how feasible it is to allow MFA syntax. I guess we would prepend the value onto the argument list which means you could add literals to the fn like so:
field: {:thing, "thing", {MyMod, :my_fun, [1,2]}}
That would get called like this: MyMod.my_fun(input["thing"], 1, 2)
The use case is partially handled by allowing a Module to be provided as a cast fn, but we can't pass in extra arguments that way.
The downside is the potential for the schemas to get quite wide and unreadable. They risk looking a bit scruffy...
We should be aware that local captures seem to have a performance cost in erlang: https://github.com/beam-telemetry/telemetry/pull/43
We should at the minimum mention that in the docs. We should also see how feasible it is to allow MFA syntax. I guess we would prepend the value onto the argument list which means you could add literals to the fn like so:
That would get called like this:
MyMod.my_fun(input["thing"], 1, 2)
The use case is partially handled by allowing a Module to be provided as a cast fn, but we can't pass in extra arguments that way.
The downside is the potential for the schemas to get quite wide and unreadable. They risk looking a bit scruffy...