...
Run Format

Source file src/testing/iotest/writer.go

Documentation: testing/iotest

  // Copyright 2009 The Go Authors. All rights reserved.
  // Use of this source code is governed by a BSD-style
  // license that can be found in the LICENSE file.
  
  package iotest
  
  import "io"
  
  // TruncateWriter returns a Writer that writes to w
  // but stops silently after n bytes.
  func TruncateWriter(w io.Writer, n int64) io.Writer {
  	return &truncateWriter{w, n}
  }
  
  type truncateWriter struct {
  	w io.Writer
  	n int64
  }
  
  func (t *truncateWriter) Write(p []byte) (n int, err error) {
  	if t.n <= 0 {
  		return len(p), nil
  	}
  	// real write
  	n = len(p)
  	if int64(n) > t.n {
  		n = int(t.n)
  	}
  	n, err = t.w.Write(p[0:n])
  	t.n -= int64(n)
  	if err == nil {
  		n = len(p)
  	}
  	return
  }
  

View as plain text