package main
|
|
|
|
import (
|
|
"fmt"
|
|
"time"
|
|
|
|
wire "github.com/tendermint/go-wire"
|
|
)
|
|
|
|
func main() {
|
|
|
|
encode(uint8(6))
|
|
encode(uint32(6))
|
|
encode(int8(-6))
|
|
encode(int32(-6))
|
|
Break()
|
|
encode(uint(6))
|
|
encode(uint(70000))
|
|
encode(int(-6))
|
|
encode(int(-70000))
|
|
Break()
|
|
encode("a")
|
|
encode("hello")
|
|
encode("¥")
|
|
Break()
|
|
encode([4]int8{1, 2, 3, 4})
|
|
encode([4]int16{1, 2, 3, 4})
|
|
encode([4]int{1, 2, 3, 4})
|
|
encode([2]string{"abc", "efg"})
|
|
Break()
|
|
encode([]int8{1, 2, 3, 4})
|
|
encode([]int16{1, 2, 3, 4})
|
|
encode([]int{1, 2, 3, 4})
|
|
encode([]string{"abc", "efg"})
|
|
Break()
|
|
|
|
timeFmt := "Mon Jan 2 15:04:05 -0700 MST 2006"
|
|
t1, _ := time.Parse(timeFmt, timeFmt)
|
|
n := (t1.UnixNano() / 1000000.) * 1000000
|
|
encode(n)
|
|
encode(t1)
|
|
|
|
t2, _ := time.Parse(timeFmt, "Thu Jan 1 00:00:00 -0000 UTC 1970")
|
|
encode(t2)
|
|
|
|
t2, _ = time.Parse(timeFmt, "Thu Jan 1 00:00:01 -0000 UTC 1970")
|
|
fmt.Println("N", t2.UnixNano())
|
|
encode(t2)
|
|
Break()
|
|
encode(struct {
|
|
A int
|
|
B string
|
|
C time.Time
|
|
}{
|
|
4,
|
|
"hello",
|
|
t1,
|
|
})
|
|
}
|
|
|
|
func encode(i interface{}) {
|
|
Println(wire.BinaryBytes(i))
|
|
|
|
}
|
|
|
|
func Println(b []byte) {
|
|
s := "["
|
|
for _, x := range b {
|
|
s += fmt.Sprintf("0x%.2X, ", x)
|
|
}
|
|
s = s[:len(s)-2] + "]"
|
|
fmt.Println(s)
|
|
}
|
|
|
|
func Break() {
|
|
fmt.Println("------")
|
|
}
|