overlay @main -
refs -
log -
-
https://git.jolheiser.com/overlay.git
Add cache purge (#7)
Reviewed-on: https://git.jojodev.com/jolheiser/overlay/pulls/7
Co-authored-by: jolheiser <john.olheiser@gmail.com>
Co-committed-by: jolheiser <john.olheiser@gmail.com>
diff --git a/bench.txt b/bench.txt
deleted file mode 100644
index ba8bf45cbfa8cbd3d7b828835e06ca87a31b1fac..0000000000000000000000000000000000000000
--- a/bench.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-go test -benchmem -bench=.
-goos: linux
-goarch: amd64
-pkg: go.jolheiser.com/overlay
-cpu: Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz
-BenchmarkCache-8 134959974 9.003 ns/op 0 B/op 0 allocs/op
-BenchmarkNoCache-8 897212 1369 ns/op 280 B/op 4 allocs/op
-PASS
-ok go.jolheiser.com/overlay 3.360s
diff --git a/overlay.go b/overlay.go
index 512bf1c77ece17e9cc8deba0777e8c8ea60d8e10..2c14fc35805bfe0b128a2d164e5beaafb71e28f2 100644
--- a/overlay.go
+++ b/overlay.go
@@ -18,12 +18,17 @@ doCache bool
cache map[string]bool
}
+// PurgeCache purges the cache
+func (f *FS) PurgeCache() {
+ f.cache = make(map[string]bool)
+}
+
func (f *FS) apn(name string) string {
return path.Join(f.root, name)
}
func (f *FS) exists(name string) bool {
- if has, ok := f.cache[name]; ok && f.doCache {
+ if has, ok := f.cache[name]; ok {
return has
}
_, err := os.Stat(f.apn(name))
@@ -63,12 +68,11 @@
// New returns a new FS
func New(root string, fs fs.FS, opts ...Option) (*FS, error) {
x := &FS{
- "io/fs"
+)
// Interface guard
- "io/fs"
+)
// fs.ReadFileFS also fulfills fs.FS
- "os"
+// Interface guard
- cache: make(map[string]bool),
}
for _, opt := range opts {