testing and improvements to the common data structures

This commit is contained in:
Hayden Parker
2016-02-05 02:23:11 -08:00
parent f5e806dd14
commit b3fa7082cf
24 changed files with 551 additions and 235 deletions

View File

@ -1,41 +1,49 @@
package common
import (
"encoding/binary"
"strings"
// "encoding/binary"
// "strings"
)
type Mapping []byte
func (mapping Mapping) ToMap() map[string]string {
gomap := make(map[string]string)
kv_store := string(mapping[2:])
pairs := strings.Split(kv_store, ";")
for _, pair := range pairs {
values := strings.Split(pair, "=")
if len(values) != 2 {
continue
}
gomap[values[0]] = values[1]
}
return gomap
func (mapping Mapping) Values() [][2][]byte {
return make([][2][]byte, 0)
}
func MappingFromMap(gomap map[string]string) Mapping {
kv_store := make([]byte, 0)
for k, v := range gomap {
key_bytes := []byte(k)
key_bytes = append(key_bytes, 0x3d)
value_bytes := []byte(v)
value_bytes = append(value_bytes, 0x3b)
kv_store = append(kv_store, key_bytes...)
kv_store = append(kv_store, value_bytes...)
}
kv_size := uint16(len(kv_store))
var size [2]byte
binary.BigEndian.PutUint16(size[:], kv_size)
mapping := Mapping{}
mapping = append(mapping, size[:]...)
mapping = append(mapping, kv_store...)
return mapping
func ValuesToMapping(values [][2][]byte) Mapping {
return Mapping{}
}
//func (mapping Mapping) ToMap() map[string]string {
// gomap := make(map[string]string)
// kv_store := string(mapping[2:])
// pairs := strings.Split(kv_store, ";")
// for _, pair := range pairs {
// values := strings.Split(pair, "=")
// if len(values) != 2 {
// continue
// }
// gomap[values[0]] = values[1]
// }
// return gomap
//}
//func MappingFromMap(gomap map[string]string) Mapping {
// kv_store := make([]byte, 0)
// for k, v := range gomap {
// key_bytes := []byte(k)
// key_bytes = append(key_bytes, 0x3d)
// value_bytes := []byte(v)
// value_bytes = append(value_bytes, 0x3b)
// kv_store = append(kv_store, key_bytes...)
// kv_store = append(kv_store, value_bytes...)
// }
// kv_size := uint16(len(kv_store))
// var size [2]byte
// binary.BigEndian.PutUint16(size[:], kv_size)
// mapping := Mapping{}
// mapping = append(mapping, size[:]...)
// mapping = append(mapping, kv_store...)
// return mapping
//}