Documentation
¶
Overview ¶
Package resource supplies a generic Access[K, V] interface for CRUD operations on key-value pairs, backed by an in-memory and JSON file implementation.
Index ¶
- Constants
- func NewInMemoryAccess[K comparable, V any]() *inMemoryAccess[K, V]
- type Access
- type JsonFileAccess
- type MockAccess
- func (a *MockAccess[K, V]) Create(key K, value V) error
- func (a *MockAccess[K, V]) Delete(key K) (err error)
- func (a *MockAccess[K, V]) Read(key K) (value *V, err error)
- func (a *MockAccess[K, V]) ReadAll() (values []V, err error)
- func (a *MockAccess[K, V]) Update(key K, value V) (err error)
- func (a *MockAccess[K, V]) WithCreatePtr(fn func(key K, value V) error)
- func (a *MockAccess[K, V]) WithDeletePtr(fn func(key K) error)
- func (a *MockAccess[K, V]) WithReadAllPtr(fn func() ([]V, error))
- func (a *MockAccess[K, V]) WithReadPtr(fn func(key K) (*V, error))
- func (a *MockAccess[K, V]) WithUpdatePtr(fn func(key K, value V) error)
Constants ¶
const ( ErrorResourceAlreadyExists = "resource already exists" ErrorResourceNotFound = "resource not found" )
Variables ¶
This section is empty.
Functions ¶
func NewInMemoryAccess ¶
func NewInMemoryAccess[K comparable, V any]() *inMemoryAccess[K, V]
NewInMemoryAccess creates a new in-memory access.
Types ¶
type Access ¶
type Access[K, V any] interface { Create(key K, value V) error Read(key K) (*V, error) ReadAll() ([]V, error) Update(key K, value V) error Delete(key K) error }
Access specifies the CRUD operations for a resource using generics.
func NewJsonFileAccess ¶ added in v0.1.51
func NewJsonFileAccess[K comparable, V any](path string) Access[K, V]
NewJsonFileAccess creates a new json file access.
type JsonFileAccess ¶ added in v0.1.51
type JsonFileAccess[K comparable, V any] struct { // contains filtered or unexported fields }
JsonFileAccess is a json file access.
func (*JsonFileAccess[K, V]) Create ¶ added in v0.1.51
func (a *JsonFileAccess[K, V]) Create(key K, value V) error
Create creates a new resource.
func (*JsonFileAccess[K, V]) Delete ¶ added in v0.1.51
func (a *JsonFileAccess[K, V]) Delete(key K) error
Delete deletes a resource.
func (*JsonFileAccess[K, V]) Read ¶ added in v0.1.51
func (a *JsonFileAccess[K, V]) Read(key K) (*V, error)
Read reads a resource.
func (*JsonFileAccess[K, V]) ReadAll ¶ added in v0.1.53
func (a *JsonFileAccess[K, V]) ReadAll() ([]V, error)
ReadAll reads all resources.
func (*JsonFileAccess[K, V]) Update ¶ added in v0.1.51
func (a *JsonFileAccess[K, V]) Update(key K, value V) error
Update updates a resource.
type MockAccess ¶ added in v0.2.14
type MockAccess[K, V any] struct { CreateFn func(key K, value V) error ReadFn func(key K) (*V, error) ReadAllFn func() ([]V, error) UpdateFn func(key K, value V) error DeleteFn func(key K) error }
MockAccess is a mock implementation of Access[K, V]. Each method has a corresponding mock function pointer (...Ptr). Use the builder-pattern to set the mock function pointers for each method. This allows for more flexible and readable test cases.
func NewMockAccess ¶ added in v0.2.14
func NewMockAccess[K, V any]() *MockAccess[K, V]
NewMockAccess creates a new instance of MockAccess[K, V].
func (*MockAccess[K, V]) Create ¶ added in v0.2.14
func (a *MockAccess[K, V]) Create(key K, value V) error
Create creates a new resource with the given key and value.
func (*MockAccess[K, V]) Delete ¶ added in v0.2.14
func (a *MockAccess[K, V]) Delete(key K) (err error)
Delete deletes a resource with the given key.
func (*MockAccess[K, V]) Read ¶ added in v0.2.14
func (a *MockAccess[K, V]) Read(key K) (value *V, err error)
Read reads a resource with the given key.
func (*MockAccess[K, V]) ReadAll ¶ added in v0.2.14
func (a *MockAccess[K, V]) ReadAll() (values []V, err error)
ReadAll reads all resources.
func (*MockAccess[K, V]) Update ¶ added in v0.2.14
func (a *MockAccess[K, V]) Update(key K, value V) (err error)
Update updates a resource with the given key and value.
func (*MockAccess[K, V]) WithCreatePtr ¶ added in v0.2.14
func (a *MockAccess[K, V]) WithCreatePtr(fn func(key K, value V) error)
WithCreatePtr sets the mock function pointer for creating a resource.
func (*MockAccess[K, V]) WithDeletePtr ¶ added in v0.2.14
func (a *MockAccess[K, V]) WithDeletePtr(fn func(key K) error)
WithDeletePtr sets the mock function pointer for deleting a resource.
func (*MockAccess[K, V]) WithReadAllPtr ¶ added in v0.2.14
func (a *MockAccess[K, V]) WithReadAllPtr(fn func() ([]V, error))
WithReadAllPtr sets the mock function pointer for reading all resources.
func (*MockAccess[K, V]) WithReadPtr ¶ added in v0.2.14
func (a *MockAccess[K, V]) WithReadPtr(fn func(key K) (*V, error))
WithReadPtr sets the mock function pointer for reading a resource.
func (*MockAccess[K, V]) WithUpdatePtr ¶ added in v0.2.14
func (a *MockAccess[K, V]) WithUpdatePtr(fn func(key K, value V) error)
WithUpdatePtr sets the mock function pointer for updating a resource.