Unified module template providers interface

This commit is contained in:
Andrew Golovashevich 2024-12-22 13:26:36 +03:00
parent 8b13d0a2e9
commit 8b3fc9355f
2 changed files with 5 additions and 3 deletions

View File

@ -3,6 +3,10 @@ package ru.landgrafhomyak.serdha.api.v0.ddl
import ru.landgrafhomyak.serdha.api.v0.runtime.Transaction import ru.landgrafhomyak.serdha.api.v0.runtime.Transaction
public interface ModuleTemplate<ModuleUserExtension : Any> { public interface ModuleTemplate<ModuleUserExtension : Any> {
public interface Provider<UserExtension : Any> {
public fun createModuleTemplates(creator: Creator): UserExtension
}
public interface Creator { public interface Creator {
public fun <NewModuleUserExtension : Any> createTemplate( public fun <NewModuleUserExtension : Any> createTemplate(
versionKey: String, versionKey: String,

View File

@ -1,12 +1,10 @@
package ru.landgrafhomyak.serdha.api.v0.runtime package ru.landgrafhomyak.serdha.api.v0.runtime
import ru.landgrafhomyak.serdha.api.v0.ddl.ModuleCreator
import ru.landgrafhomyak.serdha.api.v0.ddl.ModuleTemplate import ru.landgrafhomyak.serdha.api.v0.ddl.ModuleTemplate
import ru.landgrafhomyak.serdha.api.v0.ddl.Namespace
@Suppress("SpellCheckingInspection") @Suppress("SpellCheckingInspection")
public interface UnsynchronizedDatabase { public interface UnsynchronizedDatabase {
public fun <ModuleUserExtension : Any> createModule(initialVersionKey: String, content: ModuleTemplate.CreateModule<ModuleUserExtension>): ModuleTemplate<ModuleUserExtension> public fun <UserExtension : Any> addModuleTemplates(creator: ModuleTemplate.Provider<UserExtension>): UserExtension
public suspend fun <ModuleUserExtension : Any> synchronize(conent: ModuleTemplate<ModuleUserExtension>): SynchronizedDatabase<ModuleUserExtension> public suspend fun <ModuleUserExtension : Any> synchronize(conent: ModuleTemplate<ModuleUserExtension>): SynchronizedDatabase<ModuleUserExtension>
} }