mirror of
https://github.com/go-i2p/go-i2p.git
synced 2025-07-05 06:05:16 -04:00
testing and improvements to the common data structures
This commit is contained in:
@ -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
|
||||
//}
|
||||
|
Reference in New Issue
Block a user