-
Notifications
You must be signed in to change notification settings - Fork 33
/
examples.go
109 lines (100 loc) · 2.01 KB
/
examples.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
package main
import (
"log"
"github.com/recoilme/pudge"
)
func main() {
ExampleSet()
ExampleGet()
ExampleDelete()
ExampleDeleteFile()
ExampleOpen()
ExampleInMemoryWithoutPersist()
}
//ExampleSet lazy
func ExampleSet() {
pudge.Set("../test/test", "Hello", "World")
defer pudge.CloseAll()
}
//ExampleGet lazy
func ExampleGet() {
output := ""
pudge.Get("../test/test", "Hello", &output)
log.Println("Output:", output)
// Output: World
defer pudge.CloseAll()
}
//ExampleDelete lazy
func ExampleDelete() {
err := pudge.Delete("../test/test", "Hello")
if err == pudge.ErrKeyNotFound {
log.Println(err)
}
}
//ExampleDeleteFile lazy
func ExampleDeleteFile() {
err := pudge.DeleteFile("../test/test")
if err != nil {
log.Panic(err)
}
}
//ExampleOpen complex example
func ExampleOpen() {
cfg := &pudge.Config{
SyncInterval: 0} //disable every second fsync
db, err := pudge.Open("../test/db", cfg)
if err != nil {
log.Panic(err)
}
defer db.DeleteFile()
type Point struct {
X int
Y int
}
for i := 100; i >= 0; i-- {
p := &Point{X: i, Y: i}
db.Set(i, p)
}
var point Point
db.Get(8, &point)
log.Println(point)
// Output: {8 8}
// Select 2 keys, from 7 in ascending order
keys, _ := db.Keys(7, 2, 0, true)
for _, key := range keys {
var p Point
db.Get(key, &p)
log.Println(p)
}
// Output: {8 8}
// Output: {9 9}
}
// ExampleInMemoryWithoutPersist -if file is empty in storemode 2 - without persist
func ExampleInMemoryWithoutPersist() {
cfg := &pudge.Config{StoreMode: 2} //in memory
db, err := pudge.Open("", cfg) // if file is empty in storemode 2 - without persist
if err != nil {
log.Panic(err)
}
defer db.Close() //remove from memory
type Point struct {
X int
Y int
}
for i := 100; i >= 0; i-- {
p := &Point{X: i, Y: i}
db.Set(i, p)
}
var point Point
db.Get(89, &point)
log.Println(point)
// Output: {89 89}
keys, _ := db.Keys(77, 2, 0, true)
for _, key := range keys {
var p Point
db.Get(key, &p)
log.Println(p)
}
// Output: {78 78}
// Output: {79 79}
}