first commit
This commit is contained in:
+81
@@ -0,0 +1,81 @@
|
||||
// File: /home/meninjar/goprint/service-general/internal/infrastructure/cache/noop.go
|
||||
package cache
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"time"
|
||||
)
|
||||
|
||||
// NoOpCache is a no-operation cache implementation for development
|
||||
type NoOpCache struct{}
|
||||
|
||||
// NewNoOpCache creates a new no-op cache instance
|
||||
func NewNoOpCache() Cache {
|
||||
return &NoOpCache{}
|
||||
}
|
||||
|
||||
// Get always returns empty string and error
|
||||
func (n *NoOpCache) Get(ctx context.Context, key string) (string, error) {
|
||||
return "", errors.New("cache disabled")
|
||||
}
|
||||
|
||||
// Set always succeeds but does nothing
|
||||
func (n *NoOpCache) Set(ctx context.Context, key string, value string, expiration time.Duration) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Delete always succeeds but does nothing
|
||||
func (n *NoOpCache) Delete(ctx context.Context, key string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Exists always returns false
|
||||
func (n *NoOpCache) Exists(ctx context.Context, key string) (bool, error) {
|
||||
return false, nil
|
||||
}
|
||||
|
||||
// GetStruct always returns error
|
||||
func (n *NoOpCache) GetStruct(ctx context.Context, key string, dest interface{}) error {
|
||||
return errors.New("cache disabled")
|
||||
}
|
||||
|
||||
// SetStruct always succeeds but does nothing
|
||||
func (n *NoOpCache) SetStruct(ctx context.Context, key string, value interface{}, expiration time.Duration) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Increment always returns 0 and error
|
||||
func (n *NoOpCache) Increment(ctx context.Context, key string, delta int64) (int64, error) {
|
||||
return 0, errors.New("cache disabled")
|
||||
}
|
||||
|
||||
// Decrement always returns 0 and error
|
||||
func (n *NoOpCache) Decrement(ctx context.Context, key string, delta int64) (int64, error) {
|
||||
return 0, errors.New("cache disabled")
|
||||
}
|
||||
|
||||
// TTL always returns 0 and error
|
||||
func (n *NoOpCache) TTL(ctx context.Context, key string) (time.Duration, error) {
|
||||
return 0, errors.New("cache disabled")
|
||||
}
|
||||
|
||||
// Close always succeeds
|
||||
func (n *NoOpCache) Close() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// Health always succeeds
|
||||
func (n *NoOpCache) Health(ctx context.Context) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// MGet always returns empty slice and error
|
||||
func (n *NoOpCache) MGet(ctx context.Context, keys ...string) ([]interface{}, error) {
|
||||
return []interface{}{}, errors.New("cache disabled")
|
||||
}
|
||||
|
||||
// MSet always succeeds but does nothing
|
||||
func (n *NoOpCache) MSet(ctx context.Context, items map[string]interface{}, expiration time.Duration) error {
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user