Documentation
¶
Index ¶
- Constants
- func Module() fx.Option
- func New(config Config, logger *zapLogger) (*badger.DB, error)
- type BaseEntity
- type Config
- type Entity
- type EntityFactory
- type Repository
- func (r *Repository[T]) CreateIndexes(txn *badger.Txn, entity T) error
- func (r *Repository[T]) Delete(txn *badger.Txn, id string) error
- func (r *Repository[T]) DeleteIndexes(txn *badger.Txn, entity T) error
- func (r *Repository[T]) List(txn *badger.Txn, prefix string, options badger.IteratorOptions) ([]T, error)
- func (r *Repository[T]) Read(txn *badger.Txn, id string) (T, error)
- func (r *Repository[T]) ReadByIndex(txn *badger.Txn, index string) (T, error)
- func (r *Repository[T]) Write(txn *badger.Txn, entity T) error
Constants ¶
View Source
const SeekEnd = byte(0xFF)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type BaseEntity ¶
type BaseEntity struct {
ID uuid.UUID `json:"id"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
BaseEntity provides common fields for all storage entities.
type EntityFactory ¶
type EntityFactory[T Entity] func() T
type Repository ¶
type Repository[T Entity] struct { // contains filtered or unexported fields }
func NewRepository ¶
func NewRepository[T Entity](factory EntityFactory[T]) *Repository[T]
func (*Repository[T]) CreateIndexes ¶
func (r *Repository[T]) CreateIndexes(txn *badger.Txn, entity T) error
func (*Repository[T]) DeleteIndexes ¶
func (r *Repository[T]) DeleteIndexes(txn *badger.Txn, entity T) error
func (*Repository[T]) List ¶
func (r *Repository[T]) List(txn *badger.Txn, prefix string, options badger.IteratorOptions) ([]T, error)
func (*Repository[T]) ReadByIndex ¶
func (r *Repository[T]) ReadByIndex(txn *badger.Txn, index string) (T, error)
Click to show internal directories.
Click to hide internal directories.