github.com/jmigpin/editor@v1.6.0/util/iout/iorw/readwriter.go (about) 1 package iorw 2 3 type ReadWriterAt interface { 4 ReaderAt 5 WriterAt 6 } 7 8 type ReaderAt interface { 9 ReadFastAt(i, n int) ([]byte, error) // not a copy; might read less then n 10 // indexes: min>=0 && min<=max && max<=length 11 Min() int 12 Max() int 13 14 // note: read runes with 15 // iorw.ReadRuneAt(..) 16 // iorw.ReadLastRuneAt(..) 17 } 18 19 type WriterAt interface { 20 // insert: Overwrite(i, 0, p) 21 // delete: Overwrite(i, n, nil) 22 OverwriteAt(i, del int, p []byte) error // writes len(p) 23 }