Add generated file
This PR adds generated files under pkg/client and vendor folder.
This commit is contained in:
63
vendor/github.com/peterbourgon/diskv/examples/content-addressable-store/cas.go
generated
vendored
Normal file
63
vendor/github.com/peterbourgon/diskv/examples/content-addressable-store/cas.go
generated
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"crypto/md5"
|
||||
"fmt"
|
||||
"io"
|
||||
|
||||
"github.com/peterbourgon/diskv"
|
||||
)
|
||||
|
||||
const transformBlockSize = 2 // grouping of chars per directory depth
|
||||
|
||||
func blockTransform(s string) []string {
|
||||
var (
|
||||
sliceSize = len(s) / transformBlockSize
|
||||
pathSlice = make([]string, sliceSize)
|
||||
)
|
||||
for i := 0; i < sliceSize; i++ {
|
||||
from, to := i*transformBlockSize, (i*transformBlockSize)+transformBlockSize
|
||||
pathSlice[i] = s[from:to]
|
||||
}
|
||||
return pathSlice
|
||||
}
|
||||
|
||||
func main() {
|
||||
d := diskv.New(diskv.Options{
|
||||
BasePath: "data",
|
||||
Transform: blockTransform,
|
||||
CacheSizeMax: 1024 * 1024, // 1MB
|
||||
})
|
||||
|
||||
for _, valueStr := range []string{
|
||||
"I am the very model of a modern Major-General",
|
||||
"I've information vegetable, animal, and mineral",
|
||||
"I know the kings of England, and I quote the fights historical",
|
||||
"From Marathon to Waterloo, in order categorical",
|
||||
"I'm very well acquainted, too, with matters mathematical",
|
||||
"I understand equations, both the simple and quadratical",
|
||||
"About binomial theorem I'm teeming with a lot o' news",
|
||||
"With many cheerful facts about the square of the hypotenuse",
|
||||
} {
|
||||
d.Write(md5sum(valueStr), []byte(valueStr))
|
||||
}
|
||||
|
||||
var keyCount int
|
||||
for key := range d.Keys(nil) {
|
||||
val, err := d.Read(key)
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("key %s had no value", key))
|
||||
}
|
||||
fmt.Printf("%s: %s\n", key, val)
|
||||
keyCount++
|
||||
}
|
||||
fmt.Printf("%d total keys\n", keyCount)
|
||||
|
||||
// d.EraseAll() // leave it commented out to see how data is kept on disk
|
||||
}
|
||||
|
||||
func md5sum(s string) string {
|
||||
h := md5.New()
|
||||
io.WriteString(h, s)
|
||||
return fmt.Sprintf("%x", h.Sum(nil))
|
||||
}
|
Reference in New Issue
Block a user