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  }