removing scope from passing
This commit is contained in:
parent
51de8ca836
commit
17a2b1f341
@ -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 {
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user