github.com/aacfactory/fns-contrib/databases/sql@v1.2.84/dac/specifications/range.go (about) 1 package specifications 2 3 func RNG(offset int, length int) Range { 4 if offset < 0 { 5 offset = 0 6 } 7 if length < 1 { 8 length = 10 9 } 10 return Range{ 11 Offset: offset, 12 Length: length, 13 } 14 } 15 16 type Range struct { 17 Offset int 18 Length int 19 } 20 21 func (rng Range) Page() (page Page) { 22 page = PG((rng.Offset/rng.Length)+1, rng.Length) 23 return 24 } 25 26 func PG(no int, size int) Page { 27 if no < 1 { 28 no = 1 29 } 30 if size < 1 { 31 size = 10 32 } 33 return Page{ 34 No: no, 35 Size: size, 36 } 37 } 38 39 type Page struct { 40 No int 41 Size int 42 } 43 44 func (p Page) Range() (rng Range) { 45 rng = RNG((p.No-1)*p.Size, p.Size) 46 return 47 }