func addOptions(q rdb.Term, value string, index string, opts *t.BrowseOpt) rdb.Term { var limit uint = 1024 // TODO(gene): pass into adapter as a config param var lower, upper interface{} if opts != nil { if opts.Since > 0 { lower = opts.Since } else { lower = rdb.MinVal } if opts.Before > 0 { upper = opts.Before } else { upper = rdb.MaxVal } if value != "" { lower = []interface{}{value, lower} upper = []interface{}{value, upper} } if opts.Limit > 0 && opts.Limit < limit { limit = opts.Limit } } else { lower = []interface{}{value, rdb.MinVal} upper = []interface{}{value, rdb.MaxVal} } return q.Between(lower, upper, rdb.BetweenOpts{Index: index}). OrderBy(rdb.OrderByOpts{Index: rdb.Desc(index)}).Limit(limit) }