add Attributes minus

This commit is contained in:
Alexander Nozik 2024-07-07 11:02:49 +03:00
parent 6e24b563b2
commit 3e8f44166c
3 changed files with 28 additions and 18 deletions

View File

@ -140,8 +140,18 @@ public fun <A : Attribute<Unit>> Attributes(
attribute: A,
): Attributes = MapAttributes(mapOf(attribute to Unit))
public operator fun Attributes.plus(other: Attributes): Attributes = when{
/**
* Create a new [Attributes] that overlays [other] on top of this set of attributes. New attributes are added.
* Existing attribute keys are replaced.
*/
public operator fun Attributes.plus(other: Attributes): Attributes = when {
isEmpty() -> other
other.isEmpty() -> this
else -> MapAttributes(content + other.content)
}
/**
* Create a new [Attributes] with removed [key] (if it is present).
*/
public operator fun Attributes.minus(key: Attribute<*>): Attributes =
if (content.contains(key)) MapAttributes(content.minus(key)) else this

View File

@ -80,7 +80,7 @@ benchmark {
// Setup configurations
targets {
register("jvm")
// register("js")
register("js")
}
fun kotlinx.benchmark.gradle.BenchmarkConfiguration.commonConfiguration() {

View File

@ -4,7 +4,20 @@ plugins {
kscience {
jvm()
js()
js{
nodejs {
testTask {
useMocha().timeout = "0"
}
}
browser {
useCommonJs()
testTask {
useMocha().timeout = "0"
}
}
}
native()
dependencies {
@ -18,7 +31,7 @@ kscience {
dependencies(jsMain) {
implementation(npm("astring", "1.7.5"))
implementation(npm("binaryen", "101.0.0"))
implementation(npm("binaryen", "117.0.0"))
implementation(npm("js-base64", "3.6.1"))
}
@ -29,19 +42,6 @@ kscience {
}
kotlin {
js {
nodejs {
testTask {
useMocha().timeout = "0"
}
}
browser {
testTask {
useMocha().timeout = "0"
}
}
}
sourceSets {
filter { it.name.contains("test", true) }