// serializeStructInternalEncode takes struct field metadata and encodes the value using gob. func serializeStructInternalEncode(enc *gob.Encoder, smd *structMetaData, fieldName, metaData string, encodeValue bool, v reflect.Value) error { smd.metaDatas = append(smd.metaDatas, metaData) smd.totalLength += len(metaData) if encodeValue { if err := enc.EncodeValue(v); err != nil { return fmt.Errorf("goon: Failed to encode field %v value %v - %v", fieldName, v.Interface(), err) } } return nil }