package clause type Limit struct { limit int offset int } func NewLimit(pageNo int, pageSize int) *Limit { limit := -1 offset := -1 if pageNo != 0 && pageSize != 0 { limit = pageSize offset = (pageNo - 1) * pageSize } return &Limit{ limit: limit, offset: offset, } } func (limit *Limit) Clause() (string, error) { if limit.limit == -1 || limit.offset == -1 { return "", nil } return `LIMIT ? OFFSET ?`, nil } func (limit *Limit) Args() []any { if limit.limit == -1 || limit.offset == -1 { return make([]any, 0) } return []any{limit.limit, limit.offset} }