github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/dump/pipe.go (about) 1 package dump 2 3 import "io" 4 5 // Implements both Sink and Source 6 type Pipe chan msg 7 8 type msg struct { 9 dump *Dump 10 err error 11 } 12 13 func (p Pipe) Recv() (*Dump, error) { 14 msg, ok := <-p 15 if !ok { 16 return nil, io.EOF 17 } 18 if msg.err != nil { 19 return nil, msg.err 20 } 21 return msg.dump, nil 22 } 23 24 func (p Pipe) Send(dump *Dump) error { 25 p <- msg{dump: dump} 26 return nil 27 }