40 lines
738 B
Go
40 lines
738 B
Go
// Package model is an interface for data modelling
|
|
package model
|
|
|
|
import (
|
|
"github.com/unistack-org/micro/v3/codec"
|
|
"github.com/unistack-org/micro/v3/logger"
|
|
"github.com/unistack-org/micro/v3/store"
|
|
"github.com/unistack-org/micro/v3/sync"
|
|
)
|
|
|
|
type Options struct {
|
|
// Database to write to
|
|
Database string
|
|
// for serialising
|
|
Codec codec.Marshaler
|
|
// for locking
|
|
Sync sync.Sync
|
|
// for storage
|
|
Store store.Store
|
|
// for logger
|
|
Logger logger.Logger
|
|
}
|
|
|
|
type Option func(o *Options)
|
|
|
|
// Logger sets the logger
|
|
func Logger(l logger.Logger) Option {
|
|
return func(o *Options) {
|
|
o.Logger = l
|
|
}
|
|
}
|
|
|
|
type ReadOptions struct{}
|
|
|
|
type ReadOption func(o *ReadOptions)
|
|
|
|
type DeleteOptions struct{}
|
|
|
|
type DeleteOption func(o *DeleteOptions)
|