A toolkit of composable "function operators" for cross-cutting concerns:
retries, timing, logging, caching, and rate-limiting. Each with_*()
takes a function as its first argument and returns a wrapped function
with the class "fmisc_decorated". Wrappers are curry-friendly and
compose with the native pipe (see examples).
See also
Other decorators:
cache_clear(),
decorate(),
is_decorated(),
print.fmisc_decorated(),
undecorate(),
with_cache(),
with_logging(),
with_rate_limit(),
with_retry(),
with_timing()