-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstringToStringHashmap.go
56 lines (55 loc) · 1.26 KB
/
stringToStringHashmap.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
package immutable
// import (
// "fmt"
// "unsafe"
//
// "github.com/object88/immutable/core"
// "github.com/object88/immutable/handlers/strings"
// )
//
// type StringToStringHashmap struct {
// h *InternalHashmap
// }
//
// func NewStringToStringHashmap(contents map[string]string) *StringToStringHashmap {
// opts := core.DefaultHashmapOptions()
// strings.WithStringKeyMetadata(opts)
// strings.WithStringValueMetadata(opts)
// // for _, fn := range options {
// // fn(opts)
// // }
//
// hash := CreateEmptyInternalHashmap(len(contents), opts)
//
// for k, v := range contents {
// key, value := k, v
// hash.internalSet(unsafe.Pointer(&key), unsafe.Pointer(&value))
// }
// return &StringToStringHashmap{hash}
// }
//
// func (stsh *StringToStringHashmap) Get(key string) string {
// k := unsafe.Pointer(&key)
// r, ok, err := stsh.h.Get(k)
// if err != nil {
// panic("NOPE")
// }
// if !ok {
// fmt.Printf("!ok\n")
// }
// fmt.Printf("value: %#v\n", r)
// v := *(*string)(r)
// return v
// }
//
// func (stsh *StringToStringHashmap) Insert(key string, value string) {
//
// }
//
// func (stsh *StringToStringHashmap) Size() int {
// return stsh.h.Size()
// }
//
// func (stsh *StringToStringHashmap) String() string {
// return stsh.h.String()
// }