37 lines
		
	
	
		
			590 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			37 lines
		
	
	
		
			590 B
		
	
	
	
		
			Go
		
	
	
	
| package buffer
 | |
| 
 | |
| import (
 | |
| 	"encoding/gob"
 | |
| 	"io"
 | |
| 	"io/ioutil"
 | |
| 	"math"
 | |
| )
 | |
| 
 | |
| type discard struct{}
 | |
| 
 | |
| // Discard is a Buffer which writes to ioutil.Discard and read's return 0, io.EOF.
 | |
| // All of its methods are concurrent safe.
 | |
| var Discard Buffer = discard{}
 | |
| 
 | |
| func (buf discard) Len() int64 {
 | |
| 	return 0
 | |
| }
 | |
| 
 | |
| func (buf discard) Cap() int64 {
 | |
| 	return math.MaxInt64
 | |
| }
 | |
| 
 | |
| func (buf discard) Reset() {}
 | |
| 
 | |
| func (buf discard) Read(p []byte) (n int, err error) {
 | |
| 	return 0, io.EOF
 | |
| }
 | |
| 
 | |
| func (buf discard) Write(p []byte) (int, error) {
 | |
| 	return ioutil.Discard.Write(p)
 | |
| }
 | |
| 
 | |
| func init() {
 | |
| 	gob.Register(&discard{})
 | |
| }
 |