Files
indra/pkg/wire/response/hook.go

32 lines
566 B
Go

package response
import (
"time"
"github.com/indra-labs/indra/pkg/crypto/sha256"
"github.com/indra-labs/indra/pkg/util/slice"
)
type Hook struct {
sha256.Hash
Callback func(b slice.Bytes)
time.Time
}
type Hooks []Hook
func (h Hooks) Add(hash sha256.Hash, fn func(b slice.Bytes)) (hh Hooks) {
return append(h, Hook{Hash: hash, Callback: fn, Time: time.Now()})
}
func (h Hooks) Find(hash sha256.Hash, b slice.Bytes) (hh Hooks) {
for i := range h {
if h[i].Hash == hash {
h[i].Callback(b)
hh = append(h[:i], h[i+1:]...)
return
}
}
return
}