26 lines
503 B
Go
26 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)))
|
||
|
|
||
|
}
|