code: func toBytes(key interface{}, codec codec.MarshalUnmarshaler) ([]byte, error) {
  	if key == nil {
  		return nil, nil
  	}
  	switch t := key.(type) {
  	case []byte:
  		return t, nil
  	case string:
  		return []byte(t), nil
  	case int:
  		return numbertob(int64(t))
  	case uint:
  		return numbertob(uint64(t))
  	case int8, int16, int32, int64, uint8, uint16, uint32, uint64:
  		return numbertob(t)
  	default:
  		return codec.Marshal(key)
  	}
  }
docs: // toBytes turns an interface into a slice of bytes