Skip to content

Commit

Permalink
export Converter
Browse files Browse the repository at this point in the history
  • Loading branch information
petersunbag committed Jan 31, 2018
1 parent c992d26 commit 23a583a
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion basic.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ func newBasicConverter(convertType *convertType) (c converter) {

// convert assigns converted source value to target.
// dPtr and sPtr must pointed to a non-pointer value,
// it is assured by delegateConverter.Convert() and elemConverter.convert()
// it is assured by Converter.Convert() and elemConverter.convert()
func (g *basicConverter) convert(dPtr, sPtr unsafe.Pointer) {
g.cvtOp(sPtr, dPtr)
}
12 changes: 6 additions & 6 deletions coven.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (

var (
createdConvertersMu sync.Mutex
createdConverters = make(map[convertType]*delegateConverter)
createdConverters = make(map[convertType]*Converter)
)

type convertType struct {
Expand All @@ -27,12 +27,12 @@ type converter interface {
convert(dPtr, sPtr unsafe.Pointer)
}

type delegateConverter struct {
type Converter struct {
*convertType
converter
}

func (d *delegateConverter) Convert(dst, src interface{}) {
func (d *Converter) Convert(dst, src interface{}) {
dv := dereferencedValue(dst)
if !dv.CanSet() {
panic(fmt.Sprintf("target should be a pointer. [actual:%v]", dv.Type()))
Expand All @@ -54,7 +54,7 @@ func (d *delegateConverter) Convert(dst, src interface{}) {
d.converter.convert(unsafe.Pointer(dv.UnsafeAddr()), unsafe.Pointer(sv.UnsafeAddr()))
}

func NewConverter(dst, src interface{}) *delegateConverter {
func NewConverter(dst, src interface{}) *Converter {
dstTyp := reflect.TypeOf(dst)
srcTyp := reflect.TypeOf(src)

Expand All @@ -65,7 +65,7 @@ func NewConverter(dst, src interface{}) *delegateConverter {
}
}

func newConverter(dstTyp, srcTyp reflect.Type, lock bool) *delegateConverter {
func newConverter(dstTyp, srcTyp reflect.Type, lock bool) *Converter {
if lock {
createdConvertersMu.Lock()
defer createdConvertersMu.Unlock()
Expand Down Expand Up @@ -94,7 +94,7 @@ func newConverter(dstTyp, srcTyp reflect.Type, lock bool) *delegateConverter {
}
}
if c != nil {
dc := &delegateConverter{cTyp, c}
dc := &Converter{cTyp, c}
createdConverters[*cTyp] = dc
return dc
}
Expand Down
2 changes: 1 addition & 1 deletion map.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ func newMapConverter(convertType *convertType) (m converter) {

// convert only affects target with keys that source map has, the rest will remain unchanged.
// dPtr and sPtr must pointed to a non-pointer value,
// it is assured by delegateConverter.Convert() and elemConverter.convert()
// it is assured by Converter.Convert() and elemConverter.convert()
func (m *mapConverter) convert(dPtr, sPtr unsafe.Pointer) {
sv := ptrToMapValue(m.sEmptyMapInterface, sPtr)
dv := ptrToMapValue(m.dEmptyMapInterface, dPtr)
Expand Down
2 changes: 1 addition & 1 deletion slice.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ func newSliceConverter(convertType *convertType) (s converter) {

// convert will overwrite the whole target slice.
// dPtr and sPtr must pointed to a non-pointer value,
// it is assured by delegateConverter.Convert() and elemConverter.convert()
// it is assured by Converter.Convert() and elemConverter.convert()
func (s *sliceConverter) convert(dPtr, sPtr unsafe.Pointer) {
dSlice := (*sliceHeader)(dPtr)
sSlice := (*sliceHeader)(sPtr)
Expand Down
2 changes: 1 addition & 1 deletion struct.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func newStructConverter(convertType *convertType) (s converter) {

// convert only affects fields stored in fieldConverters, the rest will remain unchanged.
// dPtr and sPtr must pointed to a non-pointer value,
// it is assured by delegateConverter.Convert() and elemConverter.convert()
// it is assured by Converter.Convert() and elemConverter.convert()
func (s *structConverter) convert(dPtr, sPtr unsafe.Pointer) {
if s.dstTyp == s.srcTyp {
ptr.Copy(dPtr, sPtr, s.size)
Expand Down

0 comments on commit 23a583a

Please sign in to comment.