sqlite

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Sep 30, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package sqlite implements core.Store on caller-owned, driver-neutral SQLite. Connections must enable foreign keys and a positive busy timeout; New verifies both without changing connection or journal settings.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrInvalidConfig marks invalid constructor arguments or connection settings.
	ErrInvalidConfig = errors.New("invalid sqlite store configuration")

	// ErrCodec marks payload encoding or decoding failures.
	ErrCodec = errors.New("sqlite store codec failure")

	// ErrSchema marks an incompatible private store schema.
	ErrSchema = errors.New("sqlite store schema incompatible")
)

Functions

This section is empty.

Types

type Codec

type Codec[T any] interface {
	Encode(value T) ([]byte, error)
	Decode(data []byte) (T, error)
}

Codec converts payloads to deterministic bytes without retaining input or output buffers.

type FailureClass

type FailureClass uint8

FailureClass classifies driver-specific infrastructure failures.

const (
	// FailureClassUnknown is treated as unavailable.
	FailureClassUnknown FailureClass = iota

	// FailureClassBusy marks transient writer contention.
	FailureClassBusy

	// FailureClassUnavailable marks unavailable persistence infrastructure.
	FailureClassUnavailable
)

type FailureClassifier

type FailureClassifier func(error) FailureClass

FailureClassifier maps driver errors without adding a driver dependency.

type Store

type Store[T any] struct {
	// contains filtered or unexported fields
}

Store persists notification state in SQLite.

func New

func New[T any](db *sql.DB, codec Codec[T], classifier ...FailureClassifier) (*Store[T], error)

New constructs a Store and initializes its private schema. classifier maps driver-specific errors to FailureClass; omit it to treat every infrastructure failure as unavailable.

func NewContext

func NewContext[T any](
	ctx context.Context,
	db *sql.DB,
	codec Codec[T],
	classifier ...FailureClassifier,
) (*Store[T], error)

NewContext is New with caller-controlled initialization cancellation.

func (*Store[T]) ActivateDestination

func (s *Store[T]) ActivateDestination(
	ctx context.Context, plan core.PlanID, destination core.DestinationID,
) error

ActivateDestination implements core.Store.

func (*Store[T]) Admit

func (s *Store[T]) Admit(ctx context.Context, plan core.Plan, items []core.Item[T]) error

Admit implements core.Store.

func (*Store[T]) Claim

func (s *Store[T]) Claim(ctx context.Context, request core.ClaimRequest) ([]core.Work[T], error)

Claim implements core.Store.

func (*Store[T]) PendingPlans

func (s *Store[T]) PendingPlans(ctx context.Context) ([]core.PlanID, error)

PendingPlans implements core.Store.

func (*Store[T]) QuarantineDestination

func (s *Store[T]) QuarantineDestination(
	ctx context.Context, plan core.PlanID, destination core.DestinationID, failure string,
) error

QuarantineDestination implements core.Store.

func (*Store[T]) Resolve

func (s *Store[T]) Resolve(ctx context.Context, resolution core.Resolution) error

Resolve implements core.Store.

Jump to

Keyboard shortcuts

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