module Pagy::Frontend

def pagy_link_proc(pagy, deprecated_link_extra=nil, link_extra: '')

Benchmarked on a 20 link nav: it is ~22x faster and uses ~18x less memory than rails' link_to
Returns a performance optimized proc to generate the HTML links
def pagy_link_proc(pagy, deprecated_link_extra=nil, link_extra: '')
  link_extra = Pagy.deprecated_arg(:link_extra, deprecated_link_extra, :link_extra, link_extra) if deprecated_link_extra
  p_prev = pagy.prev
  p_next = pagy.next
  left, right = %(<a href="#{pagy_url_for pagy, PAGE_PLACEHOLDER}" #{pagy.vars[:link_extra]} #{link_extra}).split(PAGE_PLACEHOLDER, 2)
  lambda do |num, text=num, extra_attrs=''|
    %(#{left}#{num}#{right}#{ case num
                              when p_prev then ' rel="prev"'
                              when p_next then ' rel="next"'
                              else             ''
                              end } #{extra_attrs}>#{text}</a>)
  end
end