aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHajime Hoshi <hajimehoshi@gmail.com>2021-04-26 22:32:21 +0900
committerHajime Hoshi <hajimehoshi@gmail.com>2021-09-10 13:30:50 +0000
commit90c5660616d7f006ca62adfec49310bf40e3b354 (patch)
tree2d52a952783400a830dfe7eac896244ad637925a
parentc69f5c0d7632381dfc6dc78f0af4f54e7673176d (diff)
downloadgo-90c5660616d7f006ca62adfec49310bf40e3b354.tar.gz
go-90c5660616d7f006ca62adfec49310bf40e3b354.zip
embed: guarantee the returned file of FS.Open implements io.Seeker
Fixes golang/go#45745 Change-Id: Ib49a9605a38074f544a5d28116862e191cea8c0f Reviewed-on: https://go-review.googlesource.com/c/go/+/313352 Run-TryBot: Hajime Hoshi <hajimehoshi@gmail.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org> Trust: Than McIntosh <thanm@google.com>
-rw-r--r--src/embed/embed.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/embed/embed.go b/src/embed/embed.go
index 5dcd7f227d..f87cc5b963 100644
--- a/src/embed/embed.go
+++ b/src/embed/embed.go
@@ -291,6 +291,8 @@ func (f FS) readDir(dir string) []file {
}
// Open opens the named file for reading and returns it as an fs.File.
+//
+// The returned file implements io.Seeker when the file is not a directory.
func (f FS) Open(name string) (fs.File, error) {
file := f.lookup(name)
if file == nil {
@@ -338,6 +340,10 @@ type openFile struct {
offset int64 // current read offset
}
+var (
+ _ io.Seeker = (*openFile)(nil)
+)
+
func (f *openFile) Close() error { return nil }
func (f *openFile) Stat() (fs.FileInfo, error) { return f.f, nil }