diff options
Diffstat (limited to 'pkg/btrfs/io_ref.go')
-rw-r--r-- | pkg/btrfs/io_ref.go | 29 |
1 files changed, 0 insertions, 29 deletions
diff --git a/pkg/btrfs/io_ref.go b/pkg/btrfs/io_ref.go deleted file mode 100644 index a91b691..0000000 --- a/pkg/btrfs/io_ref.go +++ /dev/null @@ -1,29 +0,0 @@ -package btrfs - -import ( - "lukeshu.com/btrfs-tools/pkg/binstruct" -) - -type File[A ~int64] interface { - Name() string - Size() (A, error) - ReadAt(p []byte, off A) (n int, err error) -} - -type Ref[A ~int64, T any] struct { - File File[A] - Addr A - Data T -} - -func (r *Ref[A, T]) Read() error { - size, err := binstruct.Size(r.Data) - if err != nil { - return err - } - buf := make([]byte, size) - if _, err := r.File.ReadAt(buf, r.Addr); err != nil { - return err - } - return binstruct.Unmarshal(buf, &r.Data) -} |