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 {
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))
placeholders = append(placeholders, scope.AddToVars(val))
} else {

View File

@ -82,7 +82,7 @@ func updateCallback(scope *Scope) {
}
} else if field.UseEncoder {
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)))
} else {
scope.Err(err)

View File

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