@Nullable
    @Contract(value = "null -> null; !null -> !null", pure = true)
    public static <T, R> Function<T, R> wrapFunction(@Nullable Function<T, R> fn) {
        if (fn == null) return null;
        else if (fn instanceof TtlEnhanced) return fn;
        else return new TtlFunction<>(fn);
    }
wrap {@link Function} to TTL wrapper.

@param fn input {@link Function}
@return Wrapped {@link Function}
@see TtlUnwrap#unwrap(Object)
@since 2.12.4
ttl2-compatible/src/main/java/com/alibaba/ttl/TtlWrappers.java