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 }