All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jetbrains.kotlinx.ggdsl.ir.bindings.setting.kt Maven / Gradle / Ivy

There is a newer version: 0.4.0-dev-15
Show newest version
/*
* Copyright 2020-2022 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license.
*/

package org.jetbrains.kotlinx.ggdsl.ir.bindings

import kotlinx.serialization.Serializable
import org.jetbrains.kotlinx.ggdsl.ir.aes.AesName
import org.jetbrains.kotlinx.ggdsl.util.serialization.TypedValue

/**
 * Setting base interface.
 */
public sealed interface Setting

/**
 * Setting of a non-positional aesthetic attribute.
 *
 * @param T the type specifying a non-positional attribute
 * @property aes the non-positional aesthetic attribute to be set to
 * @property value the assigned value
 */
@Serializable
public data class NonPositionalSetting(
    val aes: AesName,
    val value: TypedValue,
) : Setting

/**
 * Setting of a positional aesthetic attribute.
 *
 * @param T the type of set value.
 * @property aes the positional aesthetic attribute to be set to
 * @property value the assigned value
 */
@Serializable
public data class PositionalSetting(
    val aes: AesName,
    val value: TypedValue,
) : Setting




© 2015 - 2025 Weber Informatics LLC | Privacy Policy