Add onclose callback

This commit is contained in:
Nikita Tokarchuk
2020-07-22 04:45:32 +02:00
parent b796d5ac3b
commit 951e5f5bef
6 changed files with 22 additions and 2 deletions
+4 -1
View File
@@ -7,7 +7,10 @@ import (
type Callback func(ctx context.Context, iter interface{}) (err error)
type Callbacks []Callback
type OnDecode Callback
type (
OnDecode Callback
OnClose Callback
)
// Invoke callbacks sequence
func (c Callbacks) Invoke(ctx context.Context, iter interface{}) (err error) {
+6 -1
View File
@@ -130,8 +130,13 @@ func applyCallbacks(q *Query, f interface{}) (ok bool) {
switch cb := f.(type) {
case OnDecode:
q.ondecode = append(q.ondecode, Callback(cb))
ok = true
case OnClose:
q.onclose = append(q.onclose, Callback(cb))
default:
return
}
ok = true
return
}
+5
View File
@@ -12,6 +12,7 @@ type Query struct {
skipper Skipper
preloader Preloader
ondecode Callbacks
onclose Callbacks
}
// And function pushes the elem query to the $and array of the query
@@ -81,6 +82,10 @@ func (q *Query) OnDecode() (callbacks Callbacks) {
return q.ondecode
}
func (q *Query) OnClose() (callbacks Callbacks) {
return q.onclose
}
// Empty checks the query for any content
func (q *Query) Empty() (isEmpty bool) {
return len(q.m) == 0