From 552f5b2693a5d19c126a8116d36ba1f4f6cb76a1 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Tue, 30 Dec 2014 11:40:32 +0100 Subject: rlp: add functions for encoding I'm reasonably confident that the encoding matches the output of ethutil.Encode for values that it supports. Some of the tests have been adpated from the Ethereum testing repository. There are still TODOs in the code. --- rlp/decode.go | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) (limited to 'rlp/decode.go') diff --git a/rlp/decode.go b/rlp/decode.go index a2bd04285..972e662c2 100644 --- a/rlp/decode.go +++ b/rlp/decode.go @@ -329,15 +329,9 @@ type field struct { } func makeStructDecoder(typ reflect.Type) (decoder, error) { - var fields []field - for i := 0; i < typ.NumField(); i++ { - if f := typ.Field(i); f.PkgPath == "" { // exported - info, err := cachedTypeInfo1(f.Type) - if err != nil { - return nil, err - } - fields = append(fields, field{i, info}) - } + fields, err := structFields(typ) + if err != nil { + return nil, err } dec := func(s *Stream, val reflect.Value) (err error) { if _, err = s.List(); err != nil { -- cgit v1.2.3