resource

package
v0.2.15 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 23, 2025 License: MIT Imports: 4 Imported by: 0

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

View Source
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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL