Package-level declarations

Types

Link copied to clipboard
annotation class Api4J

标记为供Java使用的阻塞API,不建议Kotlin使用。对于Kotlin应存在其他更优的代替方法。

Link copied to clipboard

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

Link copied to clipboard
class Attribute<T : Any>

一个属性。

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
annotation class BlockingApi

标记为可能存在同含义的非阻塞API的阻塞API。应优先考虑使用同含义的非阻塞的API。

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

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

Link copied to clipboard
annotation class Bonus
Link copied to clipboard
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
data class DoubleID(val number: Double) : NumericalID<Double>

使用 Double 字面值的 NumericalID 实现。

Link copied to clipboard
Link copied to clipboard

标标记为实验性的API,不保证稳定性且可能会随时发生无提示的变更或被删除。

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

标记为十分脆弱的、存在性能瓶颈、限制或有更好替代品的API,应阅读相应的文档并选择更优方案,同时尽量避免使用相关API。

Link copied to clipboard
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

标记一个作为内部API所使用的相关内容。如无必要则不应该使用内部API。一个内部API可能会在没有任何通知的情况下发生变更、删除。

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

使用 IntChar 字面值的 NumericalID 实现。

Link copied to clipboard
Link copied to clipboard
annotation class JvmSuspendTrans(val blockingBaseName: String = "", val blockingSuffix: String = "Blocking", val blockingAsProperty: Boolean = false, val asyncBaseName: String = "", val asyncSuffix: String = "Async", val asyncAsProperty: Boolean = false)

用于代表同时标记 @JvmBlocking@JvmAsync 的整合性注解。

Link copied to clipboard
annotation class JvmSuspendTransProperty(val blockingBaseName: String = "", val blockingSuffix: String = "", val blockingAsProperty: Boolean = true, val asyncBaseName: String = "", val asyncSuffix: String = "Async", val asyncAsProperty: Boolean = true)

用于代表同时标记 @JvmBlocking@JvmAsync 的整合性注解。

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
sealed class NumericalID<N : Number> : ID

以一个 数字 作为字面值的 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
sealed class Timestamp : Comparable<Timestamp>

一个 时间戳

Link copied to clipboard
object TimestampSerializer : KSerializer<Timestamp>

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

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 进行限流。

Properties

Link copied to clipboard
@get:JvmName(name = "ID")
val Int.ID: IntID

将一个 Int 作为 ID.

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

将一个 Char 作为 ID.

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

将一个 Long 作为 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 CharSequence.ID: CharSequenceID

将一个 CharSequence 作为 ID

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

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

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

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

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

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

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

@get:JvmName(name = "ID")
val BigDecimal.ID: BigDecimalID

得到一个字面值为 BigDecimalNumericalID.

@get:JvmName(name = "ID")
val BigInteger.ID: BigIntegerID

得到一个字面值为 BigIntegerNumericalID.

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

AtomicLong 的瞬时值转化为 LongID

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.