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  }