diff options
| author | Jeff Carr <[email protected]> | 2025-01-31 09:02:35 -0600 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-01-31 13:47:45 -0600 |
| commit | 9f38585892d08690dde1b67b9a01006af308a949 (patch) | |
| tree | 6f1d57dbee43651a85f7104fbfe9b08bb22afab0 /fakefile.go | |
| parent | 1a1881aa4e39e256126972c0cbe7f0db93ee20ec (diff) | |
I'm trying to make this clearer to understand
Diffstat (limited to 'fakefile.go')
| -rw-r--r-- | fakefile.go | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/fakefile.go b/fakefile.go deleted file mode 100644 index 5c54762..0000000 --- a/fakefile.go +++ /dev/null @@ -1,70 +0,0 @@ -package main - -import ( - "bytes" - "errors" - "io" - - "github.com/awesome-gocui/gocui" -) - -type FakeFile struct { - reader *bytes.Reader - buffer *bytes.Buffer - offset int64 - view *gocui.View -} - -func (f *FakeFile) Read(p []byte) (n int, err error) { - n, err = f.reader.ReadAt(p, f.offset) - f.offset += int64(n) - return n, err -} - -var fakecount int = 0 - -func (f *FakeFile) Write(p []byte) (n int, err error) { - n, err = f.buffer.Write(p) - f.offset += int64(n) - f.reader.Reset(f.buffer.Bytes()) - f.view.Write(p) - fakecount += 1 - if fakecount > 20 { - fakecount = 0 - f.view.Clear() - } - return n, err -} - -func (f *FakeFile) Seek(offset int64, whence int) (int64, error) { - newOffset := f.offset - - switch whence { - case io.SeekStart: - newOffset = offset - case io.SeekCurrent: - newOffset += offset - case io.SeekEnd: - newOffset = int64(f.buffer.Len()) + offset - default: - return 0, errors.New("Seek: whence not at start,current or end") - } - // never can get here right? - - if newOffset < 0 { - return 0, errors.New("Seek: offset < 0") - } - - f.offset = newOffset - return f.offset, nil -} - -func NewFakeFile(v *gocui.View) *FakeFile { - buf := &bytes.Buffer{} - return &FakeFile{ - reader: bytes.NewReader(buf.Bytes()), - buffer: buf, - offset: 0, - view: v, - } -} |
