From d00ecc763eb317fb305dabcb6b01c697b114057b Mon Sep 17 00:00:00 2001 From: Andrew Golovashevich Date: Thu, 17 Apr 2025 18:37:58 +0300 Subject: [PATCH] Constructors for all 8 types of raw statements --- .../api/queries/RawStatement.kt | 189 ++++++++++++++++++ 1 file changed, 189 insertions(+) create mode 100644 src/commonMain/kotlin/ru/landgrafhomyak/db/sql_skeleton_0/api/queries/RawStatement.kt diff --git a/src/commonMain/kotlin/ru/landgrafhomyak/db/sql_skeleton_0/api/queries/RawStatement.kt b/src/commonMain/kotlin/ru/landgrafhomyak/db/sql_skeleton_0/api/queries/RawStatement.kt new file mode 100644 index 0000000..83f535f --- /dev/null +++ b/src/commonMain/kotlin/ru/landgrafhomyak/db/sql_skeleton_0/api/queries/RawStatement.kt @@ -0,0 +1,189 @@ +package ru.landgrafhomyak.db.sql_skeleton_0.api.queries + +import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.Column +import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.DatabaseType +import ru.landgrafhomyak.db.sql_skeleton_0.api.misc.QueryParam + +public interface RawStatement { + public val uExt: qUE + + public interface _InputConstructorScope< + QUERY_USER_EXTENSION : Any, + in TYPE_SCOPE : Any?, + out TYPE_DESCRIPTOR : Any, + in GETTER_SCOPE : Any, + in SETTER_SCOPE : Any + > { + public val types: DatabaseType.DefaultTypes + public fun > inputParam(type: DT, paramIndex: UInt, vararg duplicateIndices: UInt): QueryParam + } + + public interface _OutputConstructorScope< + QUERY_USER_EXTENSION : Any, + in TYPE_SCOPE : Any?, + out TYPE_DESCRIPTOR : Any, + in GETTER_SCOPE : Any, + in SETTER_SCOPE : Any + > { + public val types: DatabaseType.DefaultTypes + public fun > outputColumn(type: DT, columnIndex: UInt): Column + } + + public interface _IOConstructorScope< + QUERY_USER_EXTENSION : Any, + in TYPE_SCOPE : Any?, + out TYPE_DESCRIPTOR : Any, + in GETTER_SCOPE : Any, + in SETTER_SCOPE : Any + > : _InputConstructorScope, + _OutputConstructorScope { + public override val types: DatabaseType.DefaultTypes + } + + + public interface Void2Void { + public interface Constructor { + public fun createRawStatement_void2void(scope: STATEMENT_SCOPE): RAW_STATEMENT + } + } + + public interface Void2Single { + public interface Constructor< + out QUERY_USER_EXTENSION : Any, + in STATEMENT_SCOPE : Any?, + out RAW_STATEMENT : Any, + in TYPE_SCOPE : Any?, + out TYPE_DESCRIPTOR : Any, + in GETTER_SCOPE : Any, + in SETTER_SCOPE : Any + > { + public fun createRawStatement_void2single(scope: STATEMENT_SCOPE): RAW_STATEMENT + + public fun linkRawStatement_void2single( + scope: _OutputConstructorScope< + @UnsafeVariance QUERY_USER_EXTENSION, @UnsafeVariance TYPE_SCOPE, @UnsafeVariance TYPE_DESCRIPTOR, @UnsafeVariance GETTER_SCOPE, @UnsafeVariance SETTER_SCOPE + > + ): QUERY_USER_EXTENSION + } + } + + public interface Void2AtMostSingle { + public interface Constructor< + out QUERY_USER_EXTENSION : Any, + in STATEMENT_SCOPE : Any?, + out RAW_STATEMENT : Any, + in TYPE_SCOPE : Any?, + out TYPE_DESCRIPTOR : Any, + in GETTER_SCOPE : Any, + in SETTER_SCOPE : Any + > { + public fun createRawStatement_void2atMostSingle(scope: STATEMENT_SCOPE): RAW_STATEMENT + + public fun linkRawStatement_void2atMostSingle( + scope: _OutputConstructorScope< + @UnsafeVariance QUERY_USER_EXTENSION, @UnsafeVariance TYPE_SCOPE, @UnsafeVariance TYPE_DESCRIPTOR, @UnsafeVariance GETTER_SCOPE, @UnsafeVariance SETTER_SCOPE + > + ): QUERY_USER_EXTENSION + } + } + + public interface Void2Table { + public interface Constructor< + out QUERY_USER_EXTENSION : Any, + in STATEMENT_SCOPE : Any?, + out RAW_STATEMENT : Any, + in TYPE_SCOPE : Any?, + out TYPE_DESCRIPTOR : Any, + in GETTER_SCOPE : Any, + in SETTER_SCOPE : Any + > { + public fun createRawStatement_void2table(scope: STATEMENT_SCOPE): RAW_STATEMENT + + public fun linkRawStatement_void2table( + scope: _OutputConstructorScope< + @UnsafeVariance QUERY_USER_EXTENSION, @UnsafeVariance TYPE_SCOPE, @UnsafeVariance TYPE_DESCRIPTOR, @UnsafeVariance GETTER_SCOPE, @UnsafeVariance SETTER_SCOPE + > + ): QUERY_USER_EXTENSION + } + } + + public interface Params2Void { + public interface Constructor< + out QUERY_USER_EXTENSION : Any, + in STATEMENT_SCOPE : Any?, + out RAW_STATEMENT : Any, + in TYPE_SCOPE : Any?, + out TYPE_DESCRIPTOR : Any, + in GETTER_SCOPE : Any, + in SETTER_SCOPE : Any + > { + public fun createRawStatement_params2void(scope: STATEMENT_SCOPE): RAW_STATEMENT + + public fun linkRawStatement_params2void( + scope: _InputConstructorScope< + @UnsafeVariance QUERY_USER_EXTENSION, @UnsafeVariance TYPE_SCOPE, @UnsafeVariance TYPE_DESCRIPTOR, @UnsafeVariance GETTER_SCOPE, @UnsafeVariance SETTER_SCOPE + > + ): QUERY_USER_EXTENSION + } + } + + public interface Params2Single { + public interface Constructor< + out QUERY_USER_EXTENSION : Any, + in STATEMENT_SCOPE : Any?, + out RAW_STATEMENT : Any, + in TYPE_SCOPE : Any?, + out TYPE_DESCRIPTOR : Any, + in GETTER_SCOPE : Any, + in SETTER_SCOPE : Any + > { + public fun createRawStatement_params2single(scope: STATEMENT_SCOPE): RAW_STATEMENT + + public fun linkRawStatement_params2single( + scope: _IOConstructorScope< + @UnsafeVariance QUERY_USER_EXTENSION, @UnsafeVariance TYPE_SCOPE, @UnsafeVariance TYPE_DESCRIPTOR, @UnsafeVariance GETTER_SCOPE, @UnsafeVariance SETTER_SCOPE + > + ): QUERY_USER_EXTENSION + } + } + + public interface Params2AtMostSingle { + public interface Constructor< + out QUERY_USER_EXTENSION : Any, + in STATEMENT_SCOPE : Any?, + out RAW_STATEMENT : Any, + in TYPE_SCOPE : Any?, + out TYPE_DESCRIPTOR : Any, + in GETTER_SCOPE : Any, + in SETTER_SCOPE : Any + > { + public fun createRawStatement_params2atMostSingle(scope: STATEMENT_SCOPE): RAW_STATEMENT + + public fun linkRawStatement_params2atMostSingle( + scope: _OutputConstructorScope< + @UnsafeVariance QUERY_USER_EXTENSION, @UnsafeVariance TYPE_SCOPE, @UnsafeVariance TYPE_DESCRIPTOR, @UnsafeVariance GETTER_SCOPE, @UnsafeVariance SETTER_SCOPE + > + ): QUERY_USER_EXTENSION + } + } + + public interface Params2Table { + public interface Constructor< + out QUERY_USER_EXTENSION : Any, + in STATEMENT_SCOPE : Any?, + out RAW_STATEMENT : Any, + in TYPE_SCOPE : Any?, + out TYPE_DESCRIPTOR : Any, + in GETTER_SCOPE : Any, + in SETTER_SCOPE : Any + > { + public fun createRawStatement_params2table(scope: STATEMENT_SCOPE): RAW_STATEMENT + + public fun linkRawStatement_params2table( + scope: _OutputConstructorScope< + @UnsafeVariance QUERY_USER_EXTENSION, @UnsafeVariance TYPE_SCOPE, @UnsafeVariance TYPE_DESCRIPTOR, @UnsafeVariance GETTER_SCOPE, @UnsafeVariance SETTER_SCOPE + > + ): QUERY_USER_EXTENSION + } + } +} \ No newline at end of file