Skip to content

Commit c13b70f

Browse files
committed
feat: container extensions
- added propList(...) - added faultList(...) - added structList(...) - added traitList(...) - added markdown(...)
1 parent 19459fd commit c13b70f

12 files changed

Lines changed: 45 additions & 10 deletions

mmrpc-definition/src/commonMain/kotlin/Unnamed.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,3 +40,15 @@ operator fun <T> Unnamed<T>.getValue(obj: Any?, property: KProperty<*>): T {
4040
val n = splits.last()
4141
return get(ns, n)
4242
}
43+
44+
operator fun <T> List<Unnamed<T>>.getValue(obj: NamespaceObject, property: KProperty<*>): List<T> {
45+
val splits = property.name.split("__")
46+
val ns = obj.canonicalName + splits
47+
return map { it.get(ns, name = null) }
48+
}
49+
50+
operator fun <T> List<Unnamed<T>>.getValue(obj: Any?, property: KProperty<*>): List<T> {
51+
val splits = property.name.split("__")
52+
val ns = CanonicalName(splits)
53+
return map { it.get(ns, name = null) }
54+
}

mmrpc-definition/src/commonMain/kotlin/builder/ConstDefinitionContainerBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import kotlin.jvm.JvmName
66
////////////////////////////////////////
77

88
@Marker2
9-
interface ConstDefinitionContainerBuilder {
9+
fun interface ConstDefinitionContainerBuilder {
1010
fun addConstDefinition(value: Unnamed<ConstDefinition>)
1111
}
1212

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.cufy.mmrpc.builder
2+
3+
import org.cufy.mmrpc.*
4+
5+
@Marker2
6+
fun propList(block: context(FieldDefinitionContainerBuilder) () -> Unit): List<Unnamed<FieldDefinition>> =
7+
buildList { block { add(it) } }
8+
9+
@Marker2
10+
fun faultList(block: context(FaultDefinitionContainerBuilder) () -> Unit): List<Unnamed<FaultDefinition>> =
11+
buildList { block { add(it) } }
12+
13+
@Marker2
14+
fun structList(block: context(StructDefinitionContainerBuilder) () -> Unit): List<Unnamed<StructDefinition>> =
15+
buildList { block { add(it) } }
16+
17+
@Marker2
18+
fun traitList(block: context(TraitDefinitionContainerBuilder) () -> Unit): List<Unnamed<TraitDefinition>> =
19+
buildList { block { add(it) } }
20+
21+
@Marker2
22+
fun markdown(block: context(MarkdownContainerBuilder) () -> Unit): String =
23+
buildString { block { append(it) } }

mmrpc-definition/src/commonMain/kotlin/builder/FaultDefinitionContainerBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import kotlin.jvm.JvmName
88
////////////////////////////////////////
99

1010
@Marker2
11-
interface FaultDefinitionContainerBuilder {
11+
fun interface FaultDefinitionContainerBuilder {
1212
fun addFaultDefinition(value: Unnamed<FaultDefinition>)
1313
}
1414

mmrpc-definition/src/commonMain/kotlin/builder/FieldDefinitionContainerBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import kotlin.jvm.JvmName
66
////////////////////////////////////////
77

88
@Marker2
9-
interface FieldDefinitionContainerBuilder {
9+
fun interface FieldDefinitionContainerBuilder {
1010
fun addFieldDefinition(value: Unnamed<FieldDefinition>)
1111
}
1212

mmrpc-definition/src/commonMain/kotlin/builder/FieldUsageContainerBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import org.cufy.mmrpc.Marker2
66
////////////////////////////////////////
77

88
@Marker2
9-
interface FieldUsageContainerBuilder {
9+
fun interface FieldUsageContainerBuilder {
1010
fun addFieldUsage(value: FieldUsage)
1111
}
1212

mmrpc-definition/src/commonMain/kotlin/builder/MarkdownContainerBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import org.intellij.lang.annotations.Language
66
////////////////////////////////////////
77

88
@Marker2
9-
interface MarkdownContainerBuilder {
9+
fun interface MarkdownContainerBuilder {
1010
fun addMarkdown(@Language("markdown") value: String)
1111
}
1212

mmrpc-definition/src/commonMain/kotlin/builder/MetadataUsageContainerBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import org.cufy.mmrpc.timesAssign
88
////////////////////////////////////////
99

1010
@Marker2
11-
interface MetadataUsageContainerBuilder {
11+
fun interface MetadataUsageContainerBuilder {
1212
fun addMetadataUsage(value: MetadataUsage)
1313
}
1414

mmrpc-definition/src/commonMain/kotlin/builder/RoutineDefinitionContainerBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import kotlin.jvm.JvmName
99
////////////////////////////////////////
1010

1111
@Marker2
12-
interface RoutineDefinitionContainerBuilder {
12+
fun interface RoutineDefinitionContainerBuilder {
1313
fun addRoutineDefinition(value: Unnamed<RoutineDefinition>)
1414
}
1515

mmrpc-definition/src/commonMain/kotlin/builder/StructDefinitionContainerBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import kotlin.jvm.JvmName
1010
////////////////////////////////////////
1111

1212
@Marker2
13-
interface StructDefinitionContainerBuilder {
13+
fun interface StructDefinitionContainerBuilder {
1414
fun addStructDefinition(value: Unnamed<StructDefinition>)
1515
}
1616

0 commit comments

Comments
 (0)