func (_this *NetworkInformation) Downlink() float64 {
	var ret float64
	value := _this.Value_JS.Get("downlink")
	ret = (value).Float()
	return ret
}
Downlink returning attribute 'downlink' with
type float64 (idl: unrestricted double).
package netinfo
import js "github.com/gowebapi/webapi/core/js"
import (
	"github.com/gowebapi/webapi/dom/domcore"
)
func unused(value interface{}) {
}
type Union struct {
	Value js.Value
}
func (u *Union) JSValue() js.Value {
	return u.Value
}
func UnionFromJS(value js.Value) *Union {
	return &Union{Value: value}
}
type ConnectionType int
const (
	BluetoothConnectionType ConnectionType = iota
	CellularConnectionType
	EthernetConnectionType
	MixedConnectionType
	NoneConnectionType
	OtherConnectionType
	UnknownConnectionType
	WifiConnectionType
	WimaxConnectionType
)
var connectionTypeToWasmTable = []string{
	"bluetooth", "cellular", "ethernet", "mixed", "none", "other", "unknown", "wifi", "wimax",
}
var connectionTypeFromWasmTable = map[string]ConnectionType{
	"bluetooth": BluetoothConnectionType, "cellular": CellularConnectionType, "ethernet": EthernetConnectionType, "mixed": MixedConnectionType, "none": NoneConnectionType, "other": OtherConnectionType, "unknown": UnknownConnectionType, "wifi": WifiConnectionType, "wimax": WimaxConnectionType,
}
func (this *ConnectionType) JSValue() js.Value {
	return js.ValueOf(this.Value())
}
func (this ConnectionType) Value() string {
	idx := int(this)
	if idx >= 0 && idx < len(connectionTypeToWasmTable) {
		return connectionTypeToWasmTable[idx]
	}
	panic("unknown input value")
}
func ConnectionTypeFromJS(value js.Value) ConnectionType {
	key := value.String()
	conv, ok := connectionTypeFromWasmTable[key]
	if !ok {
		panic("unable to convert '" + key + "'")
	}
	return conv
}
type EffectiveConnectionType int
const (
	_2gEffectiveConnectionType EffectiveConnectionType = iota
	_3gEffectiveConnectionType
	_4gEffectiveConnectionType
	Slow2gEffectiveConnectionType
)
var effectiveConnectionTypeToWasmTable = []string{
	"2g", "3g", "4g", "slow-2g",
}
var effectiveConnectionTypeFromWasmTable = map[string]EffectiveConnectionType{
	"2g": _2gEffectiveConnectionType, "3g": _3gEffectiveConnectionType, "4g": _4gEffectiveConnectionType, "slow-2g": Slow2gEffectiveConnectionType,
}
func (this *EffectiveConnectionType) JSValue() js.Value {
	return js.ValueOf(this.Value())
}
func (this EffectiveConnectionType) Value() string {
	idx := int(this)
	if idx >= 0 && idx < len(effectiveConnectionTypeToWasmTable) {
		return effectiveConnectionTypeToWasmTable[idx]
	}
	panic("unknown input value")
}
func EffectiveConnectionTypeFromJS(value js.Value) EffectiveConnectionType {
	key := value.String()
	conv, ok := effectiveConnectionTypeFromWasmTable[key]
	if !ok {
		panic("unable to convert '" + key + "'")
	}
	return conv
}
type NetworkInformation struct {
	domcore.EventTarget
}
func NetworkInformationFromJS(value js.Wrapper) *NetworkInformation {
	input := value.JSValue()
	if typ := input.Type(); typ == js.TypeNull || typ == js.TypeUndefined {
		return nil
	}
	ret := &NetworkInformation{}
	ret.Value_JS = input
	return ret
}
func (_this *NetworkInformation) Type() ConnectionType {
	var ret ConnectionType
	value := _this.Value_JS.Get("type")
	ret = ConnectionTypeFromJS(value)
	return ret
}
func (_this *NetworkInformation) EffectiveType() EffectiveConnectionType {
	var ret EffectiveConnectionType
	value := _this.Value_JS.Get("effectiveType")
	ret = EffectiveConnectionTypeFromJS(value)
	return ret
}
func (_this *NetworkInformation) DownlinkMax() float64 {
	var ret float64
	value := _this.Value_JS.Get("downlinkMax")
	ret = (value).Float()
	return ret
}