removing scope from passing

This commit is contained in:
Rob Rodriguez 2018-12-10 16:09:52 -08:00
parent 51de8ca836
commit 17a2b1f341
3 changed files with 5 additions and 7 deletions

View File

@ -76,7 +76,7 @@ func createCallback(scope *Scope) {
} }
} else if field.UseEncoder { } else if field.UseEncoder {
if enc, ok := scope.Value.(Encoder); ok { if enc, ok := scope.Value.(Encoder); ok {
if val, err := enc.EncodeField(scope, field.DBName); err == nil { if val, err := enc.EncodeField(field.DBName); err == nil {
columns = append(columns, scope.Quote(field.DBName)) columns = append(columns, scope.Quote(field.DBName))
placeholders = append(placeholders, scope.AddToVars(val)) placeholders = append(placeholders, scope.AddToVars(val))
} else { } else {

View File

@ -82,7 +82,7 @@ func updateCallback(scope *Scope) {
} }
} else if field.UseEncoder { } else if field.UseEncoder {
if enc, ok := scope.Value.(Encoder); ok { if enc, ok := scope.Value.(Encoder); ok {
if val, err := enc.EncodeField(scope, field.DBName); err == nil { if val, err := enc.EncodeField(field.DBName); err == nil {
sqls = append(sqls, fmt.Sprintf("%v = %v", scope.Quote(field.DBName), scope.AddToVars(val))) sqls = append(sqls, fmt.Sprintf("%v = %v", scope.Quote(field.DBName), scope.AddToVars(val)))
} else { } else {
scope.Err(err) scope.Err(err)

View File

@ -2,14 +2,13 @@ package gorm
// Encoder is a value encoding interface for complex field types // Encoder is a value encoding interface for complex field types
type Encoder interface { type Encoder interface {
EncodeField(*Scope, string) (interface{}, error) EncodeField(column string) (interface{}, error)
DecodeField(scope *Scope, column string, value interface{}) error DecodeField(column string, value interface{}) error
} }
// decoder defers decoding until necessary // decoder defers decoding until necessary
type decoder struct { type decoder struct {
Encoder Encoder
scope *Scope
column string column string
value interface{} value interface{}
} }
@ -17,7 +16,6 @@ type decoder struct {
func newDecoder(encoder Encoder, scope *Scope, column string) *decoder { func newDecoder(encoder Encoder, scope *Scope, column string) *decoder {
return &decoder{ return &decoder{
encoder, encoder,
scope,
column, column,
nil, nil,
} }
@ -31,5 +29,5 @@ func (d *decoder) Scan(src interface{}) error {
// Decode handles the decoding at a later time // Decode handles the decoding at a later time
func (d *decoder) Decode() error { func (d *decoder) Decode() error {
return d.DecodeField(d.scope, d.column, d.value) return d.DecodeField(d.column, d.value)
} }