summaryrefslogtreecommitdiff
path: root/vendor/github.com/ulule/limiter/v3/drivers/store/common
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/ulule/limiter/v3/drivers/store/common')
-rw-r--r--vendor/github.com/ulule/limiter/v3/drivers/store/common/context.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/vendor/github.com/ulule/limiter/v3/drivers/store/common/context.go b/vendor/github.com/ulule/limiter/v3/drivers/store/common/context.go
new file mode 100644
index 000000000..d181a460b
--- /dev/null
+++ b/vendor/github.com/ulule/limiter/v3/drivers/store/common/context.go
@@ -0,0 +1,28 @@
+package common
+
+import (
+ "time"
+
+ "github.com/ulule/limiter/v3"
+)
+
+// GetContextFromState generate a new limiter.Context from given state.
+func GetContextFromState(now time.Time, rate limiter.Rate, expiration time.Time, count int64) limiter.Context {
+ limit := rate.Limit
+ remaining := int64(0)
+ reached := true
+
+ if count <= limit {
+ remaining = limit - count
+ reached = false
+ }
+
+ reset := expiration.Unix()
+
+ return limiter.Context{
+ Limit: limit,
+ Remaining: remaining,
+ Reset: reset,
+ Reached: reached,
+ }
+}