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  }