Documentation
¶
Overview ¶
Package storage defines the enforced data-layer contracts used by repositories.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DocumentExecutor ¶
type DocumentExecutor interface {
Run(ctx context.Context, command string, payload any, out any) error
}
DocumentExecutor is the execution surface used by document operations.
type DocumentOperation ¶
type DocumentOperation interface {
ExecuteDocument(ctx context.Context, exec DocumentExecutor) error
}
DocumentOperation encapsulates repository-owned document query logic.
func DocumentRun ¶
func DocumentRun(command string, payload any, out any) DocumentOperation
DocumentRun builds an execution-only document operation.
type DocumentStore ¶
type DocumentStore interface {
Store
TransactionalStore
Execute(ctx context.Context, op DocumentOperation) error
}
DocumentStore executes repository-defined document operations.
type NoopDocumentStore ¶
type NoopDocumentStore struct{}
NoopDocumentStore is a transaction-capable document store placeholder. It executes document operations through a no-op executor contract.
func (NoopDocumentStore) Execute ¶
func (NoopDocumentStore) Execute(ctx context.Context, op DocumentOperation) error
Execute runs one document operation with a no-op executor.
func (NoopDocumentStore) Kind ¶
func (NoopDocumentStore) Kind() Kind
Kind identifies this store as document-oriented.
type PostgresRelationalStore ¶
type PostgresRelationalStore struct {
// contains filtered or unexported fields
}
PostgresRelationalStore executes relational repository operations over pgx.
func NewPostgresRelationalStore ¶
func NewPostgresRelationalStore(pool *pgxpool.Pool) (*PostgresRelationalStore, error)
NewPostgresRelationalStore creates a relational store backed by a pgx pool.
func (*PostgresRelationalStore) Execute ¶
func (s *PostgresRelationalStore) Execute(ctx context.Context, op RelationalOperation) error
Execute runs one repository-defined relational operation.
func (*PostgresRelationalStore) Kind ¶
func (s *PostgresRelationalStore) Kind() Kind
Kind identifies this store as relational.
type RelationalExecutor ¶
type RelationalExecutor interface {
Exec(ctx context.Context, query string, args ...any) error
QueryRow(ctx context.Context, query string, scan func(RowScanner) error, args ...any) error
Query(ctx context.Context, query string, scan func(RowScanner) error, args ...any) error
}
RelationalExecutor is the execution surface used by relational operations.
type RelationalOperation ¶
type RelationalOperation interface {
ExecuteRelational(ctx context.Context, exec RelationalExecutor) error
}
RelationalOperation encapsulates repository-owned relational query logic.
func RelationalExec ¶
func RelationalExec(query string, args ...any) RelationalOperation
RelationalExec builds an execution-only operation for write statements.
func RelationalQueryMany ¶
func RelationalQueryMany(query string, scan func(RowScanner) error, args ...any) RelationalOperation
RelationalQueryMany builds an operation for scanning many rows.
func RelationalQueryOne ¶
func RelationalQueryOne(query string, scan func(RowScanner) error, args ...any) RelationalOperation
RelationalQueryOne builds an operation that scans exactly one row.
type RelationalStore ¶
type RelationalStore interface {
Store
TransactionalStore
Execute(ctx context.Context, op RelationalOperation) error
}
RelationalStore executes repository-defined relational operations.
type RowScanner ¶
RowScanner is the minimal row scanning contract used by repositories.