resource

package
v0.4.2 Latest Latest
Warning

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

Go to latest
Published: Dec 19, 2025 License: MIT Imports: 7 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.

func NewJsonFileAccess added in v0.1.51

func NewJsonFileAccess[K comparable, V any](path string) *jsonFileAccess[K, V]

NewJsonFileAccess creates a new json file access.

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 NewSqliteAccess added in v0.2.25

func NewSqliteAccess[K comparable, V any](db *sql.DB) *sqliteAccess[K, V]

NewSqliteAccess creates a new instance of sqliteAccess.

func NewYamlFileAccess added in v0.4.1

func NewYamlFileAccess[K comparable, V any](path string) *yamlFileAccess[K, V]

NewYamlFileAccess creates a new yaml file access.

Types

type Access

type Access[K, V any] interface {
	Create(ctx context.Context, key K, value V) error
	Read(ctx context.Context, key K) (*V, error)
	ReadAll(ctx context.Context) ([]V, error)
	Update(ctx context.Context, key K, value V) error
	Delete(ctx context.Context, key K) error
}

Access specifies the CRUD operations for a resource using generics. It supports context.Context for cancellation and timeouts.

Jump to

Keyboard shortcuts

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