github.com/jmigpin/editor@v1.6.0/util/iout/misc.go (about)

     1  package iout
     2  
     3  import "bytes"
     4  
     5  type FnWriter func([]byte) (int, error)
     6  
     7  func (w FnWriter) Write(p []byte) (int, error) {
     8  	return w(p)
     9  }
    10  
    11  //----------
    12  
    13  type FnReader func([]byte) (int, error)
    14  
    15  func (r FnReader) Read(p []byte) (int, error) {
    16  	return r(p)
    17  }
    18  
    19  //----------
    20  
    21  type FnCloser func() error
    22  
    23  func (c FnCloser) Close() error {
    24  	return c()
    25  }
    26  
    27  //----------
    28  //----------
    29  //----------
    30  
    31  func CopyBytes(b []byte) []byte {
    32  	p := make([]byte, len(b), len(b))
    33  	copy(p, b)
    34  	return p
    35  }
    36  
    37  func CountLines(b []byte) int {
    38  	return bytes.Count(b, []byte("\n"))
    39  }