소스 검색

Merge pull request #291 from james-maloney/master

Allows for a pointer reciever for the Marshaler interface
Ben Hood 11 년 전
부모
커밋
fbad3bab5a
2개의 변경된 파일5개의 추가작업 그리고 3개의 파일을 삭제
  1. 1 0
      AUTHORS
  2. 4 3
      marshal.go

+ 1 - 0
AUTHORS

@@ -39,3 +39,4 @@ Dean Elbaz <elbaz.dean@gmail.com>
 Mike Berman <evencode@gmail.com>
 Dmitriy Fedorenko <c0va23@gmail.com>
 Zach Marcantel <zmarcantel@gmail.com>
+James Maloney <jamessagan@gmail.com>

+ 4 - 3
marshal.go

@@ -40,6 +40,10 @@ func Marshal(info *TypeInfo, value interface{}) ([]byte, error) {
 		return nil, nil
 	}
 
+	if v, ok := value.(Marshaler); ok {
+		return v.MarshalCQL(info)
+	}
+
 	if valueRef := reflect.ValueOf(value); valueRef.Kind() == reflect.Ptr {
 		if valueRef.IsNil() {
 			return nil, nil
@@ -48,9 +52,6 @@ func Marshal(info *TypeInfo, value interface{}) ([]byte, error) {
 		}
 	}
 
-	if v, ok := value.(Marshaler); ok {
-		return v.MarshalCQL(info)
-	}
 	switch info.Type {
 	case TypeVarchar, TypeAscii, TypeBlob:
 		return marshalVarchar(info, value)