func getTypeFromPointer(ptr interface{}) reflect.Type {
	rt := reflect.TypeOf(ptr)
	if rt.Kind() != reflect.Ptr {
		panic(fmt.Sprintf("expected pointer, got %v", rt))
	}
	return rt.Elem()
}
func getTypeFromPointer(ptr interface{}) reflect.Type {
	rt := reflect.TypeOf(ptr)
	if rt.Kind() != reflect.Ptr {
		panic(fmt.Sprintf("expected pointer, got %v", rt))
	}
	return rt.Elem()
}
func getTypeFromPointer ( ptr interface { } ) reflect . Type { rt := reflect . TypeOf ( ptr ) if rt . Kind ( ) != reflect . Ptr { panic ( fmt . Sprintf ( " " , rt ) ) } return rt . Elem ( ) }
//----------------------------------------
// encode: see binary-encode.go and json-encode.go
// decode: see binary-decode.go and json-decode.go
//----------------------------------------
// Misc.
---------------------------------------- encode : see binary - encode . go and json - encode . go decode : see binary - decode . go and json - decode . go ---------------------------------------- Misc .