summaryrefslogtreecommitdiff
path: root/vendor/github.com/tetratelabs/wazero/internal/filecache/file_cache.go
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2025-03-09 17:47:56 +0100
committerLibravatar Terin Stock <terinjokes@gmail.com>2025-03-10 01:59:49 +0100
commit3ac1ee16f377d31a0fb80c8dae28b6239ac4229e (patch)
treef61faa581feaaeaba2542b9f2b8234a590684413 /vendor/github.com/tetratelabs/wazero/internal/filecache/file_cache.go
parent[chore] update URLs to forked source (diff)
downloadgotosocial-3ac1ee16f377d31a0fb80c8dae28b6239ac4229e.tar.xz
[chore] remove vendor
Diffstat (limited to 'vendor/github.com/tetratelabs/wazero/internal/filecache/file_cache.go')
-rw-r--r--vendor/github.com/tetratelabs/wazero/internal/filecache/file_cache.go76
1 files changed, 0 insertions, 76 deletions
diff --git a/vendor/github.com/tetratelabs/wazero/internal/filecache/file_cache.go b/vendor/github.com/tetratelabs/wazero/internal/filecache/file_cache.go
deleted file mode 100644
index 940a79a8d..000000000
--- a/vendor/github.com/tetratelabs/wazero/internal/filecache/file_cache.go
+++ /dev/null
@@ -1,76 +0,0 @@
-package filecache
-
-import (
- "encoding/hex"
- "errors"
- "io"
- "os"
- "path"
- "path/filepath"
-)
-
-// New returns a new Cache implemented by fileCache.
-func New(dir string) Cache {
- return newFileCache(dir)
-}
-
-func newFileCache(dir string) *fileCache {
- return &fileCache{dirPath: dir}
-}
-
-// fileCache persists compiled functions into dirPath.
-//
-// Note: this can be expanded to do binary signing/verification, set TTL on each entry, etc.
-type fileCache struct {
- dirPath string
-}
-
-func (fc *fileCache) path(key Key) string {
- return path.Join(fc.dirPath, hex.EncodeToString(key[:]))
-}
-
-func (fc *fileCache) Get(key Key) (content io.ReadCloser, ok bool, err error) {
- f, err := os.Open(fc.path(key))
- if errors.Is(err, os.ErrNotExist) {
- return nil, false, nil
- } else if err != nil {
- return nil, false, err
- } else {
- return f, true, nil
- }
-}
-
-func (fc *fileCache) Add(key Key, content io.Reader) (err error) {
- path := fc.path(key)
- dirPath, fileName := filepath.Split(path)
-
- file, err := os.CreateTemp(dirPath, fileName+".*.tmp")
- if err != nil {
- return
- }
- defer func() {
- file.Close()
- if err != nil {
- _ = os.Remove(file.Name())
- }
- }()
- if _, err = io.Copy(file, content); err != nil {
- return
- }
- if err = file.Sync(); err != nil {
- return
- }
- if err = file.Close(); err != nil {
- return
- }
- err = os.Rename(file.Name(), path)
- return
-}
-
-func (fc *fileCache) Delete(key Key) (err error) {
- err = os.Remove(fc.path(key))
- if errors.Is(err, os.ErrNotExist) {
- err = nil
- }
- return
-}