Some boilerplate for table constructing

This commit is contained in:
Andrew Golovashevich 2025-03-24 07:07:27 +03:00
parent 7760b38549
commit 7eb5397a93
2 changed files with 16 additions and 0 deletions

View File

@ -27,5 +27,12 @@ public class Namespace(
return constructor.createTable(table, TableConstructor.Scope(table))
}
public fun <tUE : Any> table(name: String, constructor: (table: Table, members: TableConstructor.Scope) -> tUE): tUE =
this.table(name, DefaultTableConstructorWrapper(constructor))
public val path: List<String> = this._path.asList()
private class DefaultTableConstructorWrapper<tUE : Any>(private val fn: (table: Table, members: TableConstructor.Scope) -> tUE) : TableConstructor<tUE> {
override fun createTable(table: Table, members: TableConstructor.Scope): tUE = this.fn(table, members)
}
}

View File

@ -0,0 +1,9 @@
package ru.landgrafhomyak.db.raw_sql_skeleton
public abstract class _TableUserExtensionTemplate(private val __table: Table) {
public val __namespace: Namespace get() = this.__table.namespace
public val __name: String get() = this.__table.name
public val __asSqlReference: String get() = this.__table.asSqlReference
public val __asSqlString: String get() = this.__table.asSqlString
override fun toString(): String = this.__table.toString()
}