Packages
Search packages... ⌘K
Go Package
persistence
Generic persistence layer — CRUD operations with type-safe repositories
Go Ready MD
Repository[M] Generic Pattern go
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
type Project struct {
ID uuid.UUID `db:"id"`
Name string `db:"name"`
Status string `db:"status"`
}
repo := persistence.NewRepository[Project](pool, "projects")
// Type-safe CRUD — compiler enforces Project struct
project, err := repo.FindByID(ctx, id)
all, err := repo.FindAll(ctx, persistence.Query{
Filter: persistence.Filter{Field: "status", Op: "=", Value: "active"},
Limit: 25,
})
err = repo.Create(ctx, &Project{Name: "shredbx", Status: "active"})About
Implements the Repository[M] generic pattern for type-safe database access. Provides composable query builders, filter chains, and transaction support without sacrificing compile-time type safety.
Public API
| Name | Kind | Signature |
|---|---|---|
| Repository | interface | type Repository[M any] interface |
| NewRepository | func | func NewRepository[M any](pool *database.Pool, table string) Repository[M] |
| Query | type | type Query struct |
| Filter | type | type Filter struct |
Dependencies
Related Packages
Source
github.com/shredbx/sbx-core/pkg/persistence
crudgenericsrepository-patterntype-safe