Package-level declarations

Types

Link copied to clipboard
@SerialName(value = "ID.ArbitraryNumerical")
sealed class ArbitraryNumericalID<N : Number> : NumericalID<N>

一个任意的 数字ID 实例, 由平台进行实现。 作为一个任意的 数字 ID,实现的内部字面量需要是不可变的。

Link copied to clipboard

一个属性。

Link copied to clipboard

一个 Attribute 容器,标记其允许获取属性。

Link copied to clipboard

一个通过 Attribute 作为键值来界定其元素类型的映射表。

Link copied to clipboard
class AttributeMutableMap(values: MutableMap<Attribute<*>, Any> = mutableMapOf()) : MutableAttributeMap
Link copied to clipboard

BigDecimal 作为字面量值的 NumericalID 实现。

Link copied to clipboard

BigInteger 作为字面量值的 NumericalID 实现。

Link copied to clipboard
interface BlockingFilter<T> : Filter<T>

过滤器。 对一个指定的目标进行过滤匹配, 并得到最终的匹配结果。

Link copied to clipboard
@SerialName(value = "ID.CharSequence")
data class CharSequenceID(val value: CharSequence) : ID

字符序列 作为字面值的 ID.

Link copied to clipboard

一个组件信息。

Link copied to clipboard

用于支持 ApplicationBuilder.installAllComponents 进行自动加载的工厂类型定义, 实现 registrar 并返回一个 ComponentFactory 实例。

Link copied to clipboard

一个组件的容器, 标记其实现需要存在一个 组件 实例。

Link copied to clipboard
interface ComponentFactory<C : Component, out Config : Any>

组件注册器。

Link copied to clipboard

以 ID 为key的 ConcurrentMap

Link copied to clipboard
annotation class ConfusedIDType

标记一个可能没有实际用途、令人感到迷惑的ID类型或相关方法/属性。

Link copied to clipboard
data class DoubleID(val number: Double) : NumericalID<Double>

使用 Double 字面值的 NumericalID 实现。

Link copied to clipboard
Link copied to clipboard
interface Filter<T>

过滤器。 对一个指定的目标进行过滤匹配, 并得到最终的匹配结果。

Link copied to clipboard
data class FloatID(val number: Float) : NumericalID<Float>

使用 Float 字面值的 NumericalID 实现。

Link copied to clipboard
@SerialName(value = "ID")
sealed class ID : Comparable<ID> , Cloneable

唯一标识 ID.

Link copied to clipboard

ID 相关的异常。

Link copied to clipboard
interface IDMaps<V> : Map<ID, V>

以ID为Key的 Map

Link copied to clipboard

基本的 Timestamp 实现。

Link copied to clipboard

拦截器.

Link copied to clipboard
data class IntID(val number: Int) : NumericalID<Int>

使用 IntChar 字面值的 NumericalID 实现。

Link copied to clipboard
Link copied to clipboard
interface Limiter

一个限流器

Link copied to clipboard
interface LoggerContainer

日志容器,代表当前目标内存在一个可用的 Logger 日志对象。

Link copied to clipboard
data class LongID(val number: Long) : NumericalID<Long>

使用 Long 字面值的 NumericalID 实现。

Link copied to clipboard

MutableAttributeMapAttributeMap 的子类型,代表一个允许变化的 AttributeMap, 类似于 MapMutableMap 之间的关系。

Link copied to clipboard
interface MutableIDMaps<V> : IDMaps<V> , MutableMap<ID, V>

以ID为Key的 MutableMap

Link copied to clipboard
interface NumberSimilarly

一个提供数值转化能力的接口。

Link copied to clipboard
@SerialName(value = "ID.Number")
sealed class NumericalID<N : Number> : ID, NumberSimilarly

以一个 数字 作为字面值的 ID.

Link copied to clipboard

优先级常量类。

Link copied to clipboard
interface Processor<T, R>

处理器,针对于一个目标进行处理的函数。

Link copied to clipboard
object Simbot
Link copied to clipboard
interface SimbotError

Simbot中的部分特殊异常的标记接口。

Link copied to clipboard

基础的simbot受检异常。

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

基础的simbot的运行时异常。

Link copied to clipboard

绝大多数情况下,你都会将 CharSequenceID 当成 StringID 来使用,不是么?

Link copied to clipboard

一个 时间戳

Link copied to clipboard

Timestamp 直接作为字面值进行序列化的序列化器。 序列化的字面值为 Timestamp.millisecond 的值。

Link copied to clipboard
data class UIntID(val number: UInt) : ID, NumberSimilarly

使用 UInt 字面值的 ID 实现。

Link copied to clipboard
data class ULongID(val number: ULong) : ID, NumberSimilarly

使用 ULong 字面值的 ID 实现。

Properties

Link copied to clipboard

得到一个字面值为 BigDecimalNumericalID.

得到一个字面值为 BigIntegerNumericalID.

将一个UUID转化为字符串后作为 CharSequenceID

@get:JvmName(name = "ID")
val AtomicInteger.ID: IntID

将一个 AtomicInteger 当前的瞬时值作为ID。

@get:JvmName(name = "ID")
val AtomicLong.ID: LongID

AtomicLong 的瞬时值转化为 LongID

@get:JvmName(name = "ID")
val LongAccumulator.ID: LongID

将一个 LongAccumulator 当前的瞬时值作为ID。

@get:JvmName(name = "ID")
val LongAdder.ID: LongID

将一个 LongAdder 当前的瞬时值作为ID。

@get:JvmName(name = "ID")
val Char.ID: IntID

将一个 Char 作为 ID.

@get:JvmName(name = "ID")
val CharSequence.ID: CharSequenceID

将一个 CharSequence 作为 ID

@get:JvmName(name = "ID")
val Double.ID: DoubleID

将一个 Double 作为 ID.

@get:JvmName(name = "ID")
val Float.ID: FloatID

将一个 Float 作为 ID.

@get:JvmName(name = "ID")
val Int.ID: IntID

将一个 Int 作为 ID.

@get:JvmName(name = "ID")
val Long.ID: LongID

将一个 Long 作为 ID.

@get:JvmName(name = "UID")
val UInt.ID: UIntID

将一个 UInt 作为 ID.

@get:JvmName(name = "UID")
val ULong.ID: ULongID

将一个 ULong 作为 ID.

Link copied to clipboard

将当前时间戳实例转化为 Instant。 如果 Timestamp 满足 isSupport != true,则会得到 Instant.EPOCH

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

ID的字面值。等同于 ID.toString.

Link copied to clipboard

得到当前 Limiter 中等价的分页属性:每页数量。计算方式大概类似于 pageNum = offset / pageSize.

Link copied to clipboard

得到当前 Limiter 中等价的分页属性:页码大小。相当于 Limiter.limit.

Functions

Link copied to clipboard

将一个 NumericalID 作为 Number 使用.

Link copied to clipboard
fun <T : Any> attribute(name: String): Attribute<T>

构建一个 Attribute 实例。

Link copied to clipboard
inline operator fun Limiter.component1(): Int

Limiter 解构扩展,第1个属性,相当于 Limiter.offset

Link copied to clipboard
inline operator fun Limiter.component2(): Int

Limiter 解构扩展,第2个属性,相当于 Limiter.limit

Link copied to clipboard
inline operator fun Limiter.component3(): Int

Limiter 解构扩展,第3个属性,相当于 Limiter.batchSize

Link copied to clipboard
fun <V : Any> concurrentIDMapOf(vararg pairs: Pair<ID, V>): ConcurrentIDMaps<V>

V 不可为null

Link copied to clipboard

根据当前时间戳作为 LongID.

Link copied to clipboard
fun <V> emptyIDMap(): IDMaps<V>
Link copied to clipboard
fun <V> idMapOf(): IDMaps<V>
fun <V : Any> idMapOf(vararg pairs: Pair<ID, V>): IDMaps<V>
fun <V : Any> idMapOf(map: Map<ID, V>): IDMaps<V>
Link copied to clipboard
fun ApplicationBuilder<*>.installAll(classLoader: ClassLoader = this.currentClassLoader)
Link copied to clipboard
fun <A : Application> ApplicationBuilder<A>.installAllComponents(classLoader: ClassLoader = ComponentAutoRegistrarFactory::class.java.classLoader)

尝试加载所有的 ComponentAutoRegistrarFactory 并注册到 ApplicationBuilder 中。

Link copied to clipboard

是否不支持的 timestamp。等同于 isSupport != true。

Link copied to clipboard
inline fun Duration.java(ifInfinite: (duration: Duration) -> JavaDuration = { throw IllegalArgumentException( "Duration is infinite" ) }): JavaDuration

Duration 转化为 JavaDuration.

Link copied to clipboard
fun limiter(offset: Int = ZERO.offset, limit: Int = ZERO.limit, batchSize: Int = ZERO.batchSize): Limiter

得到一个 Limiter 的默认实现。

Link copied to clipboard
fun <V : Any> mutableIDMapOf(vararg pairs: Pair<ID, V>): MutableIDMaps<V>
Link copied to clipboard
fun randomID(random: Random): ID
fun randomID(random: Random = Random): ID

取得一个随机ID。

Link copied to clipboard
operator fun <T : Any> MutableAttributeMap.set(attribute: Attribute<T>, value: T)
Link copied to clipboard

所有的ID都拥有转化为字符序列ID的能力。

Link copied to clipboard
inline fun <T> Limiter.toFlow(crossinline collector: suspend FlowCollector<T>.(batchSize: Int) -> Unit): Flow<T>

参数提供 Limiter.batchSize, receiver为 FlowCollector, flow的结果通过 withLimiter 限流

Link copied to clipboard
inline fun <T> Limiter.toSequence(crossinline block: suspend SequenceScope<T>.(batchSize: Int) -> Unit): Sequence<T>

参数提供 Limiter.batchSize, receiver为 SequenceScope, sequence的结果通过 withLimiter 限流

Link copied to clipboard
Link copied to clipboard

尝试将当前ID转化为一个 Long

Link copied to clipboard

尝试将当前ID转为一个 LongID.

Link copied to clipboard

尝试将当前ID转为一个 NumericalID

Link copied to clipboard
fun <T> Stream<T>.withLimiter(limiter: Limiter): Stream<T>

使用 limiter 对目标 Stream 进行限流。

fun <T> Sequence<T>.withLimiter(limiter: Limiter): Sequence<T>

使用 limiter 对目标 Sequence 进行限流。

fun <T> Flow<T>.withLimiter(limiter: Limiter): Flow<T>

使用 limiter 对目标 Flow 进行限流。