Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ModuleDB ¶
type ModuleDB interface { ormtable.Schema // GenesisHandler returns an implementation of appmodule.HasGenesis // to be embedded in or called from app module implementations. // Ex: // type Keeper struct { // appmodule.HasGenesis // } // // func NewKeeper(db ModuleDB) *Keeper { // return &Keeper{HasGenesis: db.GenesisHandler()} // } GenesisHandler() appmodule.HasGenesis // contains filtered or unexported methods }
ModuleDB defines the ORM database type to be used by modules.
func NewModuleDB ¶
func NewModuleDB(schema *ormv1alpha1.ModuleSchemaDescriptor, options ModuleDBOptions) (ModuleDB, error)
NewModuleDB constructs a ModuleDB instance from the provided schema and options.
type ModuleDBOptions ¶
type ModuleDBOptions struct { // TypeResolver is an optional type resolver to be used when unmarshaling // protobuf messages. If it is nil, protoregistry.GlobalTypes will be used. TypeResolver ormtable.TypeResolver // FileResolver is an optional file resolver that can be used to retrieve // pinned file descriptors that may be different from those available at // runtime. The file descriptor versions returned by this resolver will be // used instead of the ones provided at runtime by the ModuleSchema. FileResolver protodesc.Resolver // JSONValidator is an optional validator that can be used for validating // messaging when using ValidateJSON. If it is nil, DefaultJSONValidator // will be used JSONValidator func(proto.Message) error // KVStoreService is the storage service to use for the DB if default KV-store storage is used. KVStoreService store.KVStoreService // KVStoreService is the storage service to use for the DB if memory storage is used. MemoryStoreService store.MemoryStoreService // KVStoreService is the storage service to use for the DB if transient storage is used. TransientStoreService store.TransientStoreService }
ModuleDBOptions are options for constructing a ModuleDB.
Click to show internal directories.
Click to hide internal directories.