25 lines
503 B
Go
25 lines
503 B
Go
package leakybucket
|
|
|
|
import (
|
|
"crypto/sha1"
|
|
"fmt"
|
|
"sync"
|
|
)
|
|
|
|
// Buckets is the struct used to hold buckets in the context of
|
|
// main.go the idea is to have one struct to rule them all
|
|
type Buckets struct {
|
|
Bucket_map sync.Map
|
|
}
|
|
|
|
// NewBuckets create the Buckets struct
|
|
func NewBuckets() *Buckets {
|
|
return &Buckets{
|
|
Bucket_map: sync.Map{},
|
|
}
|
|
}
|
|
|
|
func GetKey(bucketCfg BucketFactory, stackkey string) string {
|
|
return fmt.Sprintf("%x", sha1.Sum([]byte(bucketCfg.Filter+stackkey+bucketCfg.Name)))
|
|
|
|
}
|