...
1
2
3
4
5
6
7
8
9
10
11
12
13 package mock
14
15 import (
16 "io"
17
18 "github.com/go-kivik/kivik/v4/driver"
19 )
20
21
22 type Rows struct {
23
24 ID string
25 CloseFunc func() error
26 NextFunc func(*driver.Row) error
27 OffsetFunc func() int64
28 TotalRowsFunc func() int64
29 UpdateSeqFunc func() string
30 }
31
32 var _ driver.Rows = &Rows{}
33
34
35 func (r *Rows) Close() error {
36 if r == nil || r.CloseFunc == nil {
37 return nil
38 }
39 return r.CloseFunc()
40 }
41
42
43 func (r *Rows) Next(row *driver.Row) error {
44 if r == nil || r.NextFunc == nil {
45 return io.EOF
46 }
47 return r.NextFunc(row)
48 }
49
50
51 func (r *Rows) Offset() int64 {
52 if r == nil || r.OffsetFunc == nil {
53 return 0
54 }
55 return r.OffsetFunc()
56 }
57
58
59 func (r *Rows) TotalRows() int64 {
60 if r == nil || r.TotalRowsFunc == nil {
61 return 0
62 }
63 return r.TotalRowsFunc()
64 }
65
66
67 func (r *Rows) UpdateSeq() string {
68 if r == nil || r.UpdateSeqFunc == nil {
69 return ""
70 }
71 return r.UpdateSeqFunc()
72 }
73
74
75 type RowsWarner struct {
76 *Rows
77 WarningFunc func() string
78 }
79
80 var _ driver.RowsWarner = &RowsWarner{}
81
82
83 func (r *RowsWarner) Warning() string {
84 return r.WarningFunc()
85 }
86
87
88 type Bookmarker struct {
89 *Rows
90 BookmarkFunc func() string
91 }
92
93 var _ driver.Bookmarker = &Bookmarker{}
94
95
96 func (r *Bookmarker) Bookmark() string {
97 return r.BookmarkFunc()
98 }
99
View as plain text