module Guff class Results(R) getter :page getter :limit getter :num_rows getter :rows def initialize( @page : Int32 = 1, @limit : Int32 = 1, @num_rows : Int32 = 0, @rows : Array(R) = [] of R, ) end def to_json { meta: { page: @page, limit: @limit, num_pages: (@num_rows / @limit).ceil, num_rows: @num_rows, }, rows: @rows, }.to_json end def size @num_rows end end end