// Code generated by "enumer -type=LinkType -linecomment -text"; DO NOT EDIT.

package nethelpers

import (
	"fmt"
)

const _LinkTypeName = "netromethereetherax25pronetchaosieee802arcnetatalkdlciatmmetricomieee1394eui64infinibandslipcslipslip6cslip6rsrvdadaptrosex25hwx25canpppciscolapbddcmprawhdlcipiptunnel6fradskiploopbacklocaltlkfddibifsitip/ddpgrepimreghippiasheconetirdafcppfcalfcplfcfb_0fcfb_1fcfb_2fcfb_3fcfb_4fcfb_5fcfb_6fcfb_7fcfb_8fcfb_9fcfb_10fcfb_11fcfb_12trieee802.11ieee802.11_prismieee802.11_radiotapieee802.15.4ieee802.15.4_monitorphonetphonet_pipecaifip6grenetlink6lowpannohdrvoid"

var _LinkTypeMap = map[LinkType]string{
	0:     _LinkTypeName[0:6],
	1:     _LinkTypeName[6:11],
	2:     _LinkTypeName[11:17],
	3:     _LinkTypeName[17:21],
	4:     _LinkTypeName[21:27],
	5:     _LinkTypeName[27:32],
	6:     _LinkTypeName[32:39],
	7:     _LinkTypeName[39:45],
	8:     _LinkTypeName[45:50],
	15:    _LinkTypeName[50:54],
	19:    _LinkTypeName[54:57],
	23:    _LinkTypeName[57:65],
	24:    _LinkTypeName[65:73],
	27:    _LinkTypeName[73:78],
	32:    _LinkTypeName[78:88],
	256:   _LinkTypeName[88:92],
	257:   _LinkTypeName[92:97],
	258:   _LinkTypeName[97:102],
	259:   _LinkTypeName[102:108],
	260:   _LinkTypeName[108:113],
	264:   _LinkTypeName[113:118],
	270:   _LinkTypeName[118:122],
	271:   _LinkTypeName[122:125],
	272:   _LinkTypeName[125:130],
	280:   _LinkTypeName[130:133],
	512:   _LinkTypeName[133:136],
	513:   _LinkTypeName[136:141],
	516:   _LinkTypeName[141:145],
	517:   _LinkTypeName[145:150],
	518:   _LinkTypeName[150:157],
	768:   _LinkTypeName[157:161],
	769:   _LinkTypeName[161:168],
	770:   _LinkTypeName[168:172],
	771:   _LinkTypeName[172:176],
	772:   _LinkTypeName[176:184],
	773:   _LinkTypeName[184:192],
	774:   _LinkTypeName[192:196],
	775:   _LinkTypeName[196:199],
	776:   _LinkTypeName[199:202],
	777:   _LinkTypeName[202:208],
	778:   _LinkTypeName[208:211],
	779:   _LinkTypeName[211:217],
	780:   _LinkTypeName[217:222],
	781:   _LinkTypeName[222:225],
	782:   _LinkTypeName[225:231],
	783:   _LinkTypeName[231:235],
	784:   _LinkTypeName[235:239],
	785:   _LinkTypeName[239:243],
	786:   _LinkTypeName[243:247],
	787:   _LinkTypeName[247:253],
	788:   _LinkTypeName[253:259],
	789:   _LinkTypeName[259:265],
	790:   _LinkTypeName[265:271],
	791:   _LinkTypeName[271:277],
	792:   _LinkTypeName[277:283],
	793:   _LinkTypeName[283:289],
	794:   _LinkTypeName[289:295],
	795:   _LinkTypeName[295:301],
	796:   _LinkTypeName[301:307],
	797:   _LinkTypeName[307:314],
	798:   _LinkTypeName[314:321],
	799:   _LinkTypeName[321:328],
	800:   _LinkTypeName[328:330],
	801:   _LinkTypeName[330:340],
	802:   _LinkTypeName[340:356],
	803:   _LinkTypeName[356:375],
	804:   _LinkTypeName[375:387],
	805:   _LinkTypeName[387:407],
	820:   _LinkTypeName[407:413],
	821:   _LinkTypeName[413:424],
	822:   _LinkTypeName[424:428],
	823:   _LinkTypeName[428:434],
	824:   _LinkTypeName[434:441],
	825:   _LinkTypeName[441:448],
	65534: _LinkTypeName[448:453],
	65535: _LinkTypeName[453:457],
}

func (i LinkType) String() string {
	if str, ok := _LinkTypeMap[i]; ok {
		return str
	}
	return fmt.Sprintf("LinkType(%d)", i)
}

var _LinkTypeValues = []LinkType{0, 1, 2, 3, 4, 5, 6, 7, 8, 15, 19, 23, 24, 27, 32, 256, 257, 258, 259, 260, 264, 270, 271, 272, 280, 512, 513, 516, 517, 518, 768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 820, 821, 822, 823, 824, 825, 65534, 65535}

var _LinkTypeNameToValueMap = map[string]LinkType{
	_LinkTypeName[0:6]:     0,
	_LinkTypeName[6:11]:    1,
	_LinkTypeName[11:17]:   2,
	_LinkTypeName[17:21]:   3,
	_LinkTypeName[21:27]:   4,
	_LinkTypeName[27:32]:   5,
	_LinkTypeName[32:39]:   6,
	_LinkTypeName[39:45]:   7,
	_LinkTypeName[45:50]:   8,
	_LinkTypeName[50:54]:   15,
	_LinkTypeName[54:57]:   19,
	_LinkTypeName[57:65]:   23,
	_LinkTypeName[65:73]:   24,
	_LinkTypeName[73:78]:   27,
	_LinkTypeName[78:88]:   32,
	_LinkTypeName[88:92]:   256,
	_LinkTypeName[92:97]:   257,
	_LinkTypeName[97:102]:  258,
	_LinkTypeName[102:108]: 259,
	_LinkTypeName[108:113]: 260,
	_LinkTypeName[113:118]: 264,
	_LinkTypeName[118:122]: 270,
	_LinkTypeName[122:125]: 271,
	_LinkTypeName[125:130]: 272,
	_LinkTypeName[130:133]: 280,
	_LinkTypeName[133:136]: 512,
	_LinkTypeName[136:141]: 513,
	_LinkTypeName[141:145]: 516,
	_LinkTypeName[145:150]: 517,
	_LinkTypeName[150:157]: 518,
	_LinkTypeName[157:161]: 768,
	_LinkTypeName[161:168]: 769,
	_LinkTypeName[168:172]: 770,
	_LinkTypeName[172:176]: 771,
	_LinkTypeName[176:184]: 772,
	_LinkTypeName[184:192]: 773,
	_LinkTypeName[192:196]: 774,
	_LinkTypeName[196:199]: 775,
	_LinkTypeName[199:202]: 776,
	_LinkTypeName[202:208]: 777,
	_LinkTypeName[208:211]: 778,
	_LinkTypeName[211:217]: 779,
	_LinkTypeName[217:222]: 780,
	_LinkTypeName[222:225]: 781,
	_LinkTypeName[225:231]: 782,
	_LinkTypeName[231:235]: 783,
	_LinkTypeName[235:239]: 784,
	_LinkTypeName[239:243]: 785,
	_LinkTypeName[243:247]: 786,
	_LinkTypeName[247:253]: 787,
	_LinkTypeName[253:259]: 788,
	_LinkTypeName[259:265]: 789,
	_LinkTypeName[265:271]: 790,
	_LinkTypeName[271:277]: 791,
	_LinkTypeName[277:283]: 792,
	_LinkTypeName[283:289]: 793,
	_LinkTypeName[289:295]: 794,
	_LinkTypeName[295:301]: 795,
	_LinkTypeName[301:307]: 796,
	_LinkTypeName[307:314]: 797,
	_LinkTypeName[314:321]: 798,
	_LinkTypeName[321:328]: 799,
	_LinkTypeName[328:330]: 800,
	_LinkTypeName[330:340]: 801,
	_LinkTypeName[340:356]: 802,
	_LinkTypeName[356:375]: 803,
	_LinkTypeName[375:387]: 804,
	_LinkTypeName[387:407]: 805,
	_LinkTypeName[407:413]: 820,
	_LinkTypeName[413:424]: 821,
	_LinkTypeName[424:428]: 822,
	_LinkTypeName[428:434]: 823,
	_LinkTypeName[434:441]: 824,
	_LinkTypeName[441:448]: 825,
	_LinkTypeName[448:453]: 65534,
	_LinkTypeName[453:457]: 65535,
}

// LinkTypeString retrieves an enum value from the enum constants string name.
// Throws an error if the param is not part of the enum.
func LinkTypeString(s string) (LinkType, error) {
	if val, ok := _LinkTypeNameToValueMap[s]; ok {
		return val, nil
	}
	return 0, fmt.Errorf("%s does not belong to LinkType values", s)
}

// LinkTypeValues returns all values of the enum
func LinkTypeValues() []LinkType {
	return _LinkTypeValues
}

// IsALinkType returns "true" if the value is listed in the enum definition. "false" otherwise
func (i LinkType) IsALinkType() bool {
	_, ok := _LinkTypeMap[i]
	return ok
}

// MarshalText implements the encoding.TextMarshaler interface for LinkType
func (i LinkType) MarshalText() ([]byte, error) {
	return []byte(i.String()), nil
}

// UnmarshalText implements the encoding.TextUnmarshaler interface for LinkType
func (i *LinkType) UnmarshalText(text []byte) error {
	var err error
	*i, err = LinkTypeString(string(text))
	return err
}
