func NewProtoType(raw string) ProtoType {
	switch raw {
	case "udp":
		return ProtoTypeUDP
	case "tcp":
		return ProtoTypeTCP
	default:
		return ProtoType(Unknown)
	}
}
NewProtoType defines a procedure for creating a new ProtoType from a raw
string naming the transport protocol type.
package ice
import (
	"net"
	"net/url"
	"strconv"
)
type SchemeType int
const Unknown = iota
const (
	SchemeTypeSTUN SchemeType = iota + 1
	SchemeTypeSTUNS
	SchemeTypeTURN
	SchemeTypeTURNS
)
func NewSchemeType(raw string) SchemeType {
	switch raw {
	case "stun":
		return SchemeTypeSTUN
	case "stuns":
		return SchemeTypeSTUNS
	case "turn":
		return SchemeTypeTURN
	case "turns":
		return SchemeTypeTURNS
	default:
		return SchemeType(Unknown)
	}
}
func (t SchemeType) String() string {
	switch t {
	case SchemeTypeSTUN:
		return "stun"
	case SchemeTypeSTUNS:
		return "stuns"
	case SchemeTypeTURN:
		return "turn"
	case SchemeTypeTURNS:
		return "turns"
	default:
		return ErrUnknownType.Error()
	}
}
type ProtoType int
const (
	ProtoTypeUDP ProtoType = iota + 1
	ProtoTypeTCP
)