From 7d4d0458ca5e6087194a5cb38acf4e3d81c6db68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20R=C3=BCger?= Date: Fri, 13 Mar 2026 02:11:18 +0100 Subject: [PATCH] fix: narrow vfs.Opener interface from ReadWriteCloser to ReadCloser All callers only read from the opened file (io.ReadAll + Close). Using io.ReadWriteCloser in the interface was misleading and violated the principle of interface segregation. os.Open returns a read-only file that satisfies io.ReadCloser but not the write contract implied by io.ReadWriteCloser. Narrow both the interface and the implementation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- vfs/vfs.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vfs/vfs.go b/vfs/vfs.go index b23d627..a8a09a3 100644 --- a/vfs/vfs.go +++ b/vfs/vfs.go @@ -6,13 +6,13 @@ import ( ) type Opener interface { - Open(name string) (io.ReadWriteCloser, error) + Open(name string) (io.ReadCloser, error) } type LocalOSOpener struct { } -func (o LocalOSOpener) Open(name string) (io.ReadWriteCloser, error) { +func (o LocalOSOpener) Open(name string) (io.ReadCloser, error) { return os.Open(name) }