Newer
Older
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
package state
import (
"errors"
)
type Ephemeral struct {
store map[ string ] *Item
}
func NewEphemeralStore() *Ephemeral {
return &Ephemeral{
store: map[ string ] *Item {},
}
}
func ( e *Ephemeral ) Add( i *Item ) error {
if e.store == nil {
return errors.New( "ephemeral storage not available" )
}
name := i.Name()
e.store[ name ] = i
return nil
}
func ( e *Ephemeral ) Remove( name string ) error {
if e.store == nil {
return errors.New( "ephemeral storage not available" )
}
delete( e.store, name )
return nil
}
func ( e *Ephemeral ) Fetch( name string ) ( *Item, error ) {
if e.store == nil {
return nil, errors.New( "ephemeral storage not available" )
}
item, found := e.store[ name ]
if !found {
return nil, nil
}
return item, nil
}
func ( e *Ephemeral ) Show() ( []string, error ) {
if e.store == nil {
return nil, errors.New( "ephemeral storage not available" )
}
names := make( []string, 0, len( e.store ) )
for k := range e.store {
names = append( names, k )
}
return names, nil
}
func ( e *Ephemeral ) Disconnect() error {
e.store = nil
return nil
}