package internal
import "reflect"
var ifaceType = reflect .TypeOf ((*interface {})(nil )).Elem ()
type MapKey struct {
iface interface {}
}
func NewMapKey (is []interface {}) MapKey {
return MapKey {
iface : newMapKey (is ),
}
}
func newMapKey (is []interface {}) interface {} {
switch len (is ) {
case 1 :
ptr := new ([1 ]interface {})
copy ((*ptr )[:], is )
return *ptr
case 2 :
ptr := new ([2 ]interface {})
copy ((*ptr )[:], is )
return *ptr
case 3 :
ptr := new ([3 ]interface {})
copy ((*ptr )[:], is )
return *ptr
case 4 :
ptr := new ([4 ]interface {})
copy ((*ptr )[:], is )
return *ptr
case 5 :
ptr := new ([5 ]interface {})
copy ((*ptr )[:], is )
return *ptr
case 6 :
ptr := new ([6 ]interface {})
copy ((*ptr )[:], is )
return *ptr
case 7 :
ptr := new ([7 ]interface {})
copy ((*ptr )[:], is )
return *ptr
case 8 :
ptr := new ([8 ]interface {})
copy ((*ptr )[:], is )
return *ptr
case 9 :
ptr := new ([9 ]interface {})
copy ((*ptr )[:], is )
return *ptr
case 10 :
ptr := new ([10 ]interface {})
copy ((*ptr )[:], is )
return *ptr
default :
}
at := reflect .New (reflect .ArrayOf (len (is ), ifaceType )).Elem ()
for i , v := range is {
*(at .Index (i ).Addr ().Interface ().(*interface {})) = v
}
return at .Interface ()
}
The pages are generated with Golds v0.3.6 . (GOOS=darwin GOARCH=amd64)
Golds is a Go 101 project developed by Tapir Liu .
PR and bug reports are welcome and can be submitted to the issue list .
Please follow @Go100and1 (reachable from the left QR code) to get the latest news of Golds .