mirror of
https://github.com/logos-messaging/nim-chat-sdk.git
synced 2026-01-04 07:03:09 +00:00
21 lines
596 B
Nim
21 lines
596 B
Nim
import std/[times, deques, options]
|
|
import chronos
|
|
|
|
type
|
|
BucketState* = object
|
|
budget*: int
|
|
budgetCap*: int
|
|
lastTimeFull*: Moment
|
|
|
|
QueueType* {.pure.} = enum
|
|
Critical = "critical"
|
|
Normal = "normal"
|
|
|
|
RateLimitStore* =
|
|
concept s
|
|
s.saveBucketState(BucketState) is Future[bool]
|
|
s.loadBucketState() is Future[Option[BucketState]]
|
|
s.addToQueue(QueueType, seq[tuple[msgId: string, msg: untyped]]) is Future[bool]
|
|
s.popFromQueue(QueueType) is Future[Option[seq[tuple[msgId: string, msg: untyped]]]]
|
|
s.getQueueLength(QueueType) is int
|