////////////////////////////////////////////////////////////////////////////////
// Do not modify!
// Generated by codergen -go
////////////////////////////////////////////////////////////////////////////////

package adb

import "fmt"

const _DeviceState_name = "offlinedeviceunauthorized"

var _DeviceState_map = map[DeviceState]string{
	0: _DeviceState_name[0:7],
	1: _DeviceState_name[7:13],
	2: _DeviceState_name[13:25],
}

func (v DeviceState) String() string {
	if s, ok := _DeviceState_map[v]; ok {
		return s
	}
	return fmt.Sprintf("DeviceState(%d)", v)
}

func (v *DeviceState) Parse(s string) error {
	for k, t := range _DeviceState_map {
		if s == t {
			*v = k
			return nil
		}
	}
	return fmt.Errorf("%s not in DeviceState", s)
}
