2023-06-20 19:45:21 +03:00
|
|
|
/*
|
|
|
|
* Copyright 2018-2023 KMath contributors.
|
|
|
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
|
|
|
*/
|
|
|
|
|
|
|
|
package space.kscience.attributes
|
|
|
|
|
|
|
|
public interface Attribute<T>
|
|
|
|
|
2023-07-09 15:51:50 +03:00
|
|
|
/**
|
|
|
|
* An attribute that could be either present or absent
|
|
|
|
*/
|
|
|
|
public interface FlagAttribute : Attribute<Unit>
|
2023-06-20 19:45:21 +03:00
|
|
|
|
2023-07-09 15:51:50 +03:00
|
|
|
/**
|
|
|
|
* An attribute with a default value
|
|
|
|
*/
|
2023-06-20 19:45:21 +03:00
|
|
|
public interface AttributeWithDefault<T> : Attribute<T> {
|
|
|
|
public val default: T
|
|
|
|
}
|
|
|
|
|
2023-07-09 15:51:50 +03:00
|
|
|
/**
|
|
|
|
* Attribute containing a set of values
|
|
|
|
*/
|
2023-06-20 19:45:21 +03:00
|
|
|
public interface SetAttribute<V> : Attribute<Set<V>>
|
|
|
|
|