btle 0.1.4

Lightweight Bluetooth Low Energy Drivers. WIP and very not stable yet!! Designed for https://github.com/AndrewGi/BluetoothMeshRust
Documentation
//! Bluetooth URI type. According to Bluetooth Assigned Numbers.
use core::convert::TryFrom;
use core::fmt::{Display, Error, Formatter};
use core::str::FromStr;

/// URI Name type based on [Bluetooth Assigned Numbers](https://www.bluetooth.com/specifications/assigned-numbers/uri-scheme-name-string-mapping/).
#[derive(Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Hash, Debug)]
#[repr(u8)]
pub enum URIName {
    Aaa = 0x02,
    Aaas = 0x03,
    About = 0x04,
    Acap = 0x05,
    Acct = 0x06,
    Cap = 0x07,
    Cid = 0x08,
    Coap = 0x09,
    Coaps = 0x0A,
    Crid = 0x0B,
    Data = 0x0C,
    Dav = 0x0D,
    Dict = 0x0E,
    Dns = 0x0F,
    File = 0x10,
    Ftp = 0x11,
    Geo = 0x12,
    Go = 0x13,
    Gopher = 0x14,
    H323 = 0x15,
    Http = 0x16,
    Https = 0x17,
    Iax = 0x18,
    Icap = 0x19,
    Im = 0x1A,
    Imap = 0x1B,
    Info = 0x1C,
    Ipp = 0x1D,
    Ipps = 0x1E,
    Iris = 0x1F,
    IrisBeep = 0x20,
    IrisXpc = 0x21,
    IrisXpcs = 0x22,
    IrisLwz = 0x23,
    Jabber = 0x24,
    Ldap = 0x25,
    Mailto = 0x26,
    Mid = 0x27,
    Msrp = 0x28,
    Msrps = 0x29,
    Mtqp = 0x2A,
    Mupdate = 0x2B,
    News = 0x2C,
    Nfs = 0x2D,
    Ni = 0x2E,
    Nih = 0x2F,
    Nntp = 0x30,
    Opaquelocktoken = 0x31,
    Pop = 0x32,
    Pres = 0x33,
    Reload = 0x34,
    Rtsp = 0x35,
    Rtsps = 0x36,
    Rtspu = 0x37,
    Service = 0x38,
    Session = 0x39,
    Shttp = 0x3A,
    Sieve = 0x3B,
    Sip = 0x3C,
    Sips = 0x3D,
    Sms = 0x3E,
    Snmp = 0x3F,
    SoapBeep = 0x40,
    SoapBeeps = 0x41,
    Stun = 0x42,
    Stuns = 0x43,
    Tag = 0x44,
    Tel = 0x45,
    Telnet = 0x46,
    Tftp = 0x47,
    Thismessage = 0x48,
    Tn3270 = 0x49,
    Tip = 0x4A,
    Turn = 0x4B,
    Turns = 0x4C,
    Tv = 0x4D,
    Urn = 0x4E,
    Vemmi = 0x4F,
    Ws = 0x50,
    Wss = 0x51,
    Xcon = 0x52,
    XconUserid = 0x53,
    XmlrpcBeep = 0x54,
    XmlrpcBeeps = 0x55,
    Xmpp = 0x56,
    Z3950r = 0x57,
    Z3950s = 0x58,
    Acr = 0x59,
    Adiumxtra = 0x5A,
    Afp = 0x5B,
    Afs = 0x5C,
    Aim = 0x5D,
    Apt = 0x5E,
    Attachment = 0x5F,
    Aw = 0x60,
    Barion = 0x61,
    Beshare = 0x62,
    Bitcoin = 0x63,
    Bolo = 0x64,
    Callto = 0x65,
    Chrome = 0x66,
    ChromeExtension = 0x67,
    ComEventbriteAttendee = 0x68,
    Content = 0x69,
    Cvs = 0x6A,
    DlnaPlaysingle = 0x6B,
    DlnaPlaycontainer = 0x6C,
    Dtn = 0x6D,
    Dvb = 0x6E,
    Ed2k = 0x6F,
    Facetime = 0x70,
    Feed = 0x71,
    Feedready = 0x72,
    Finger = 0x73,
    Fish = 0x74,
    Gg = 0x75,
    Git = 0x76,
    Gizmoproject = 0x77,
    Gtalk = 0x78,
    Ham = 0x79,
    Hcp = 0x7A,
    Icon = 0x7B,
    Ipn = 0x7C,
    Irc = 0x7D,
    Irc6 = 0x7E,
    Ircs = 0x7F,
    Itms = 0x80,
    Jar = 0x81,
    Jms = 0x82,
    Keyparc = 0x83,
    Lastfm = 0x84,
    Ldaps = 0x85,
    Magnet = 0x86,
    Maps = 0x87,
    Market = 0x88,
    Message = 0x89,
    Mms = 0x8A,
    MsHelp = 0x8B,
    MsSettingsPower = 0x8C,
    Msnim = 0x8D,
    Mumble = 0x8E,
    Mvn = 0x8F,
    Notes = 0x90,
    Oid = 0x91,
    Palm = 0x92,
    Paparazzi = 0x93,
    Pkcs11 = 0x94,
    Platform = 0x95,
    Proxy = 0x96,
    Psyc = 0x97,
    Query = 0x98,
    Res = 0x99,
    Resource = 0x9A,
    Rmi = 0x9B,
    Rsync = 0x9C,
    Rtmfp = 0x9D,
    Rtmp = 0x9E,
    Secondlife = 0x9F,
    Sftp = 0xA0,
    Sgn = 0xA1,
    Skype = 0xA2,
    Smb = 0xA3,
    Smtp = 0xA4,
    Soldat = 0xA5,
    Spotify = 0xA6,
    Ssh = 0xA7,
    Steam = 0xA8,
    Submit = 0xA9,
    Svn = 0xAA,
    Teamspeak = 0xAB,
    Teliaeid = 0xAC,
    Things = 0xAD,
    Udp = 0xAE,
    Unreal = 0xAF,
    Ut2004 = 0xB0,
    Ventrilo = 0xB1,
    ViewSource = 0xB2,
    Webcal = 0xB3,
    Wtai = 0xB4,
    Wyciwyg = 0xB5,
    Xfire = 0xB6,
    Xri = 0xB7,
    Ymsgr = 0xB8,
    Example = 0xB9,
    MsSettingsCloudstorage = 0xBA,
}
impl From<URIName> for u8 {
    fn from(uri_name: URIName) -> Self {
        uri_name as u8
    }
}
#[derive(Copy, Clone, Ord, PartialOrd, Eq, PartialEq, Debug, Hash)]
pub struct URINameError(());
impl TryFrom<u8> for URIName {
    type Error = URINameError;

    fn try_from(value: u8) -> Result<Self, Self::Error> {
        match value {
            0x02 => Ok(URIName::Aaa),
            0x03 => Ok(URIName::Aaas),
            0x04 => Ok(URIName::About),
            0x05 => Ok(URIName::Acap),
            0x06 => Ok(URIName::Acct),
            0x07 => Ok(URIName::Cap),
            0x08 => Ok(URIName::Cid),
            0x09 => Ok(URIName::Coap),
            0x0A => Ok(URIName::Coaps),
            0x0B => Ok(URIName::Crid),
            0x0C => Ok(URIName::Data),
            0x0D => Ok(URIName::Dav),
            0x0E => Ok(URIName::Dict),
            0x0F => Ok(URIName::Dns),
            0x10 => Ok(URIName::File),
            0x11 => Ok(URIName::Ftp),
            0x12 => Ok(URIName::Geo),
            0x13 => Ok(URIName::Go),
            0x14 => Ok(URIName::Gopher),
            0x15 => Ok(URIName::H323),
            0x16 => Ok(URIName::Http),
            0x17 => Ok(URIName::Https),
            0x18 => Ok(URIName::Iax),
            0x19 => Ok(URIName::Icap),
            0x1A => Ok(URIName::Im),
            0x1B => Ok(URIName::Imap),
            0x1C => Ok(URIName::Info),
            0x1D => Ok(URIName::Ipp),
            0x1E => Ok(URIName::Ipps),
            0x1F => Ok(URIName::Iris),
            0x20 => Ok(URIName::IrisBeep),
            0x21 => Ok(URIName::IrisXpc),
            0x22 => Ok(URIName::IrisXpcs),
            0x23 => Ok(URIName::IrisLwz),
            0x24 => Ok(URIName::Jabber),
            0x25 => Ok(URIName::Ldap),
            0x26 => Ok(URIName::Mailto),
            0x27 => Ok(URIName::Mid),
            0x28 => Ok(URIName::Msrp),
            0x29 => Ok(URIName::Msrps),
            0x2A => Ok(URIName::Mtqp),
            0x2B => Ok(URIName::Mupdate),
            0x2C => Ok(URIName::News),
            0x2D => Ok(URIName::Nfs),
            0x2E => Ok(URIName::Ni),
            0x2F => Ok(URIName::Nih),
            0x30 => Ok(URIName::Nntp),
            0x31 => Ok(URIName::Opaquelocktoken),
            0x32 => Ok(URIName::Pop),
            0x33 => Ok(URIName::Pres),
            0x34 => Ok(URIName::Reload),
            0x35 => Ok(URIName::Rtsp),
            0x36 => Ok(URIName::Rtsps),
            0x37 => Ok(URIName::Rtspu),
            0x38 => Ok(URIName::Service),
            0x39 => Ok(URIName::Session),
            0x3A => Ok(URIName::Shttp),
            0x3B => Ok(URIName::Sieve),
            0x3C => Ok(URIName::Sip),
            0x3D => Ok(URIName::Sips),
            0x3E => Ok(URIName::Sms),
            0x3F => Ok(URIName::Snmp),
            0x40 => Ok(URIName::SoapBeep),
            0x41 => Ok(URIName::SoapBeeps),
            0x42 => Ok(URIName::Stun),
            0x43 => Ok(URIName::Stuns),
            0x44 => Ok(URIName::Tag),
            0x45 => Ok(URIName::Tel),
            0x46 => Ok(URIName::Telnet),
            0x47 => Ok(URIName::Tftp),
            0x48 => Ok(URIName::Thismessage),
            0x49 => Ok(URIName::Tn3270),
            0x4A => Ok(URIName::Tip),
            0x4B => Ok(URIName::Turn),
            0x4C => Ok(URIName::Turns),
            0x4D => Ok(URIName::Tv),
            0x4E => Ok(URIName::Urn),
            0x4F => Ok(URIName::Vemmi),
            0x50 => Ok(URIName::Ws),
            0x51 => Ok(URIName::Wss),
            0x52 => Ok(URIName::Xcon),
            0x53 => Ok(URIName::XconUserid),
            0x54 => Ok(URIName::XmlrpcBeep),
            0x55 => Ok(URIName::XmlrpcBeeps),
            0x56 => Ok(URIName::Xmpp),
            0x57 => Ok(URIName::Z3950r),
            0x58 => Ok(URIName::Z3950s),
            0x59 => Ok(URIName::Acr),
            0x5A => Ok(URIName::Adiumxtra),
            0x5B => Ok(URIName::Afp),
            0x5C => Ok(URIName::Afs),
            0x5D => Ok(URIName::Aim),
            0x5E => Ok(URIName::Apt),
            0x5F => Ok(URIName::Attachment),
            0x60 => Ok(URIName::Aw),
            0x61 => Ok(URIName::Barion),
            0x62 => Ok(URIName::Beshare),
            0x63 => Ok(URIName::Bitcoin),
            0x64 => Ok(URIName::Bolo),
            0x65 => Ok(URIName::Callto),
            0x66 => Ok(URIName::Chrome),
            0x67 => Ok(URIName::ChromeExtension),
            0x68 => Ok(URIName::ComEventbriteAttendee),
            0x69 => Ok(URIName::Content),
            0x6A => Ok(URIName::Cvs),
            0x6B => Ok(URIName::DlnaPlaysingle),
            0x6C => Ok(URIName::DlnaPlaycontainer),
            0x6D => Ok(URIName::Dtn),
            0x6E => Ok(URIName::Dvb),
            0x6F => Ok(URIName::Ed2k),
            0x70 => Ok(URIName::Facetime),
            0x71 => Ok(URIName::Feed),
            0x72 => Ok(URIName::Feedready),
            0x73 => Ok(URIName::Finger),
            0x74 => Ok(URIName::Fish),
            0x75 => Ok(URIName::Gg),
            0x76 => Ok(URIName::Git),
            0x77 => Ok(URIName::Gizmoproject),
            0x78 => Ok(URIName::Gtalk),
            0x79 => Ok(URIName::Ham),
            0x7A => Ok(URIName::Hcp),
            0x7B => Ok(URIName::Icon),
            0x7C => Ok(URIName::Ipn),
            0x7D => Ok(URIName::Irc),
            0x7E => Ok(URIName::Irc6),
            0x7F => Ok(URIName::Ircs),
            0x80 => Ok(URIName::Itms),
            0x81 => Ok(URIName::Jar),
            0x82 => Ok(URIName::Jms),
            0x83 => Ok(URIName::Keyparc),
            0x84 => Ok(URIName::Lastfm),
            0x85 => Ok(URIName::Ldaps),
            0x86 => Ok(URIName::Magnet),
            0x87 => Ok(URIName::Maps),
            0x88 => Ok(URIName::Market),
            0x89 => Ok(URIName::Message),
            0x8A => Ok(URIName::Mms),
            0x8B => Ok(URIName::MsHelp),
            0x8C => Ok(URIName::MsSettingsPower),
            0x8D => Ok(URIName::Msnim),
            0x8E => Ok(URIName::Mumble),
            0x8F => Ok(URIName::Mvn),
            0x90 => Ok(URIName::Notes),
            0x91 => Ok(URIName::Oid),
            0x92 => Ok(URIName::Palm),
            0x93 => Ok(URIName::Paparazzi),
            0x94 => Ok(URIName::Pkcs11),
            0x95 => Ok(URIName::Platform),
            0x96 => Ok(URIName::Proxy),
            0x97 => Ok(URIName::Psyc),
            0x98 => Ok(URIName::Query),
            0x99 => Ok(URIName::Res),
            0x9A => Ok(URIName::Resource),
            0x9B => Ok(URIName::Rmi),
            0x9C => Ok(URIName::Rsync),
            0x9D => Ok(URIName::Rtmfp),
            0x9E => Ok(URIName::Rtmp),
            0x9F => Ok(URIName::Secondlife),
            0xA0 => Ok(URIName::Sftp),
            0xA1 => Ok(URIName::Sgn),
            0xA2 => Ok(URIName::Skype),
            0xA3 => Ok(URIName::Smb),
            0xA4 => Ok(URIName::Smtp),
            0xA5 => Ok(URIName::Soldat),
            0xA6 => Ok(URIName::Spotify),
            0xA7 => Ok(URIName::Ssh),
            0xA8 => Ok(URIName::Steam),
            0xA9 => Ok(URIName::Submit),
            0xAA => Ok(URIName::Svn),
            0xAB => Ok(URIName::Teamspeak),
            0xAC => Ok(URIName::Teliaeid),
            0xAD => Ok(URIName::Things),
            0xAE => Ok(URIName::Udp),
            0xAF => Ok(URIName::Unreal),
            0xB0 => Ok(URIName::Ut2004),
            0xB1 => Ok(URIName::Ventrilo),
            0xB2 => Ok(URIName::ViewSource),
            0xB3 => Ok(URIName::Webcal),
            0xB4 => Ok(URIName::Wtai),
            0xB5 => Ok(URIName::Wyciwyg),
            0xB6 => Ok(URIName::Xfire),
            0xB7 => Ok(URIName::Xri),
            0xB8 => Ok(URIName::Ymsgr),
            0xB9 => Ok(URIName::Example),
            0xBA => Ok(URIName::MsSettingsCloudstorage),
            _ => Err(URINameError(())),
        }
    }
}
impl URIName {
    pub fn as_str(self) -> &'static str {
        match self {
            URIName::Aaa => "aaa:",
            URIName::Aaas => "aaas:",
            URIName::About => "about:",
            URIName::Acap => "acap:",
            URIName::Acct => "acct:",
            URIName::Cap => "cap:",
            URIName::Cid => "cid:",
            URIName::Coap => "coap:",
            URIName::Coaps => "coaps:",
            URIName::Crid => "crid:",
            URIName::Data => "data:",
            URIName::Dav => "dav:",
            URIName::Dict => "dict:",
            URIName::Dns => "dns:",
            URIName::File => "file:",
            URIName::Ftp => "ftp:",
            URIName::Geo => "geo:",
            URIName::Go => "go:",
            URIName::Gopher => "gopher:",
            URIName::H323 => "h323:",
            URIName::Http => "http:",
            URIName::Https => "https:",
            URIName::Iax => "iax:",
            URIName::Icap => "icap:",
            URIName::Im => "im:",
            URIName::Imap => "imap:",
            URIName::Info => "info:",
            URIName::Ipp => "ipp:",
            URIName::Ipps => "ipps:",
            URIName::Iris => "iris:",
            URIName::IrisBeep => "iris.beep:",
            URIName::IrisXpc => "iris.xpc:",
            URIName::IrisXpcs => "iris.xpcs:",
            URIName::IrisLwz => "iris.lwz:",
            URIName::Jabber => "jabber:",
            URIName::Ldap => "ldap:",
            URIName::Mailto => "mailto:",
            URIName::Mid => "mid:",
            URIName::Msrp => "msrp:",
            URIName::Msrps => "msrps:",
            URIName::Mtqp => "mtqp:",
            URIName::Mupdate => "mupdate:",
            URIName::News => "news:",
            URIName::Nfs => "nfs:",
            URIName::Ni => "ni:",
            URIName::Nih => "nih:",
            URIName::Nntp => "nntp:",
            URIName::Opaquelocktoken => "opaquelocktoken:",
            URIName::Pop => "pop:",
            URIName::Pres => "pres:",
            URIName::Reload => "reload:",
            URIName::Rtsp => "rtsp:",
            URIName::Rtsps => "rtsps:",
            URIName::Rtspu => "rtspu:",
            URIName::Service => "service:",
            URIName::Session => "session:",
            URIName::Shttp => "shttp:",
            URIName::Sieve => "sieve:",
            URIName::Sip => "sip:",
            URIName::Sips => "sips:",
            URIName::Sms => "sms:",
            URIName::Snmp => "snmp:",
            URIName::SoapBeep => "soap.beep:",
            URIName::SoapBeeps => "soap.beeps:",
            URIName::Stun => "stun:",
            URIName::Stuns => "stuns:",
            URIName::Tag => "tag:",
            URIName::Tel => "tel:",
            URIName::Telnet => "telnet:",
            URIName::Tftp => "tftp:",
            URIName::Thismessage => "thismessage:",
            URIName::Tn3270 => "tn3270:",
            URIName::Tip => "tip:",
            URIName::Turn => "turn:",
            URIName::Turns => "turns:",
            URIName::Tv => "tv:",
            URIName::Urn => "urn:",
            URIName::Vemmi => "vemmi:",
            URIName::Ws => "ws:",
            URIName::Wss => "wss:",
            URIName::Xcon => "xcon:",
            URIName::XconUserid => "xcon-userid:",
            URIName::XmlrpcBeep => "xmlrpc.beep:",
            URIName::XmlrpcBeeps => "xmlrpc.beeps:",
            URIName::Xmpp => "xmpp:",
            URIName::Z3950r => "z39.50r:",
            URIName::Z3950s => "z39.50s:",
            URIName::Acr => "acr:",
            URIName::Adiumxtra => "adiumxtra:",
            URIName::Afp => "afp:",
            URIName::Afs => "afs:",
            URIName::Aim => "aim:",
            URIName::Apt => "apt:",
            URIName::Attachment => "attachment:",
            URIName::Aw => "aw:",
            URIName::Barion => "barion:",
            URIName::Beshare => "beshare:",
            URIName::Bitcoin => "bitcoin:",
            URIName::Bolo => "bolo:",
            URIName::Callto => "callto:",
            URIName::Chrome => "chrome:",
            URIName::ChromeExtension => "chrome-extension:",
            URIName::ComEventbriteAttendee => "com-eventbrite-attendee:",
            URIName::Content => "content:",
            URIName::Cvs => "cvs:",
            URIName::DlnaPlaysingle => "dlna-playsingle:",
            URIName::DlnaPlaycontainer => "dlna-playcontainer:",
            URIName::Dtn => "dtn:",
            URIName::Dvb => "dvb:",
            URIName::Ed2k => "ed2k:",
            URIName::Facetime => "facetime:",
            URIName::Feed => "feed:",
            URIName::Feedready => "feedready:",
            URIName::Finger => "finger:",
            URIName::Fish => "fish:",
            URIName::Gg => "gg:",
            URIName::Git => "git:",
            URIName::Gizmoproject => "gizmoproject:",
            URIName::Gtalk => "gtalk:",
            URIName::Ham => "ham:",
            URIName::Hcp => "hcp:",
            URIName::Icon => "icon:",
            URIName::Ipn => "ipn:",
            URIName::Irc => "irc:",
            URIName::Irc6 => "irc6:",
            URIName::Ircs => "ircs:",
            URIName::Itms => "itms:",
            URIName::Jar => "jar:",
            URIName::Jms => "jms:",
            URIName::Keyparc => "keyparc:",
            URIName::Lastfm => "lastfm:",
            URIName::Ldaps => "ldaps:",
            URIName::Magnet => "magnet:",
            URIName::Maps => "maps:",
            URIName::Market => "market:",
            URIName::Message => "message:",
            URIName::Mms => "mms:",
            URIName::MsHelp => "ms-help:",
            URIName::MsSettingsPower => "ms-settings-power:",
            URIName::Msnim => "msnim:",
            URIName::Mumble => "mumble:",
            URIName::Mvn => "mvn:",
            URIName::Notes => "notes:",
            URIName::Oid => "oid:",
            URIName::Palm => "palm:",
            URIName::Paparazzi => "paparazzi:",
            URIName::Pkcs11 => "pkcs11:",
            URIName::Platform => "platform:",
            URIName::Proxy => "proxy:",
            URIName::Psyc => "psyc:",
            URIName::Query => "query:",
            URIName::Res => "res:",
            URIName::Resource => "resource:",
            URIName::Rmi => "rmi:",
            URIName::Rsync => "rsync:",
            URIName::Rtmfp => "rtmfp:",
            URIName::Rtmp => "rtmp:",
            URIName::Secondlife => "secondlife:",
            URIName::Sftp => "sftp:",
            URIName::Sgn => "sgn:",
            URIName::Skype => "skype:",
            URIName::Smb => "smb:",
            URIName::Smtp => "smtp:",
            URIName::Soldat => "soldat:",
            URIName::Spotify => "spotify:",
            URIName::Ssh => "ssh:",
            URIName::Steam => "steam:",
            URIName::Submit => "submit:",
            URIName::Svn => "svn:",
            URIName::Teamspeak => "teamspeak:",
            URIName::Teliaeid => "teliaeid:",
            URIName::Things => "things:",
            URIName::Udp => "udp:",
            URIName::Unreal => "unreal:",
            URIName::Ut2004 => "ut2004:",
            URIName::Ventrilo => "ventrilo:",
            URIName::ViewSource => "view-source:",
            URIName::Webcal => "webcal:",
            URIName::Wtai => "wtai:",
            URIName::Wyciwyg => "wyciwyg:",
            URIName::Xfire => "xfire:",
            URIName::Xri => "xri:",
            URIName::Ymsgr => "ymsgr:",
            URIName::Example => "example:",
            URIName::MsSettingsCloudstorage => "ms-settings-cloudstorage:",
        }
    }
}
impl FromStr for URIName {
    type Err = URINameError;

    fn from_str(s: &str) -> Result<Self, Self::Err> {
        match s.trim_end_matches(':') {
            "aaa" => Ok(URIName::Aaa),
            "aaas" => Ok(URIName::Aaas),
            "about" => Ok(URIName::About),
            "acap" => Ok(URIName::Acap),
            "acct" => Ok(URIName::Acct),
            "cap" => Ok(URIName::Cap),
            "cid" => Ok(URIName::Cid),
            "coap" => Ok(URIName::Coap),
            "coaps" => Ok(URIName::Coaps),
            "crid" => Ok(URIName::Crid),
            "data" => Ok(URIName::Data),
            "dav" => Ok(URIName::Dav),
            "dict" => Ok(URIName::Dict),
            "dns" => Ok(URIName::Dns),
            "file" => Ok(URIName::File),
            "ftp" => Ok(URIName::Ftp),
            "geo" => Ok(URIName::Geo),
            "go" => Ok(URIName::Go),
            "gopher" => Ok(URIName::Gopher),
            "h323" => Ok(URIName::H323),
            "http" => Ok(URIName::Http),
            "https" => Ok(URIName::Https),
            "iax" => Ok(URIName::Iax),
            "icap" => Ok(URIName::Icap),
            "im" => Ok(URIName::Im),
            "imap" => Ok(URIName::Imap),
            "info" => Ok(URIName::Info),
            "ipp" => Ok(URIName::Ipp),
            "ipps" => Ok(URIName::Ipps),
            "iris" => Ok(URIName::Iris),
            "iris.beep" => Ok(URIName::IrisBeep),
            "iris.xpc" => Ok(URIName::IrisXpc),
            "iris.xpcs" => Ok(URIName::IrisXpcs),
            "iris.lwz" => Ok(URIName::IrisLwz),
            "jabber" => Ok(URIName::Jabber),
            "ldap" => Ok(URIName::Ldap),
            "mailto" => Ok(URIName::Mailto),
            "mid" => Ok(URIName::Mid),
            "msrp" => Ok(URIName::Msrp),
            "msrps" => Ok(URIName::Msrps),
            "mtqp" => Ok(URIName::Mtqp),
            "mupdate" => Ok(URIName::Mupdate),
            "news" => Ok(URIName::News),
            "nfs" => Ok(URIName::Nfs),
            "ni" => Ok(URIName::Ni),
            "nih" => Ok(URIName::Nih),
            "nntp" => Ok(URIName::Nntp),
            "opaquelocktoken" => Ok(URIName::Opaquelocktoken),
            "pop" => Ok(URIName::Pop),
            "pres" => Ok(URIName::Pres),
            "reload" => Ok(URIName::Reload),
            "rtsp" => Ok(URIName::Rtsp),
            "rtsps" => Ok(URIName::Rtsps),
            "rtspu" => Ok(URIName::Rtspu),
            "service" => Ok(URIName::Service),
            "session" => Ok(URIName::Session),
            "shttp" => Ok(URIName::Shttp),
            "sieve" => Ok(URIName::Sieve),
            "sip" => Ok(URIName::Sip),
            "sips" => Ok(URIName::Sips),
            "sms" => Ok(URIName::Sms),
            "snmp" => Ok(URIName::Snmp),
            "soap.beep" => Ok(URIName::SoapBeep),
            "soap.beeps" => Ok(URIName::SoapBeeps),
            "stun" => Ok(URIName::Stun),
            "stuns" => Ok(URIName::Stuns),
            "tag" => Ok(URIName::Tag),
            "tel" => Ok(URIName::Tel),
            "telnet" => Ok(URIName::Telnet),
            "tftp" => Ok(URIName::Tftp),
            "thismessage" => Ok(URIName::Thismessage),
            "tn3270" => Ok(URIName::Tn3270),
            "tip" => Ok(URIName::Tip),
            "turn" => Ok(URIName::Turn),
            "turns" => Ok(URIName::Turns),
            "tv" => Ok(URIName::Tv),
            "urn" => Ok(URIName::Urn),
            "vemmi" => Ok(URIName::Vemmi),
            "ws" => Ok(URIName::Ws),
            "wss" => Ok(URIName::Wss),
            "xcon" => Ok(URIName::Xcon),
            "xcon-userid" => Ok(URIName::XconUserid),
            "xmlrpc.beep" => Ok(URIName::XmlrpcBeep),
            "xmlrpc.beeps" => Ok(URIName::XmlrpcBeeps),
            "xmpp" => Ok(URIName::Xmpp),
            "z39.50r" => Ok(URIName::Z3950r),
            "z39.50s" => Ok(URIName::Z3950s),
            "acr" => Ok(URIName::Acr),
            "adiumxtra" => Ok(URIName::Adiumxtra),
            "afp" => Ok(URIName::Afp),
            "afs" => Ok(URIName::Afs),
            "aim" => Ok(URIName::Aim),
            "apt" => Ok(URIName::Apt),
            "attachment" => Ok(URIName::Attachment),
            "aw" => Ok(URIName::Aw),
            "barion" => Ok(URIName::Barion),
            "beshare" => Ok(URIName::Beshare),
            "bitcoin" => Ok(URIName::Bitcoin),
            "bolo" => Ok(URIName::Bolo),
            "callto" => Ok(URIName::Callto),
            "chrome" => Ok(URIName::Chrome),
            "chrome-extension" => Ok(URIName::ChromeExtension),
            "com-eventbrite-attendee" => Ok(URIName::ComEventbriteAttendee),
            "content" => Ok(URIName::Content),
            "cvs" => Ok(URIName::Cvs),
            "dlna-playsingle" => Ok(URIName::DlnaPlaysingle),
            "dlna-playcontainer" => Ok(URIName::DlnaPlaycontainer),
            "dtn" => Ok(URIName::Dtn),
            "dvb" => Ok(URIName::Dvb),
            "ed2k" => Ok(URIName::Ed2k),
            "facetime" => Ok(URIName::Facetime),
            "feed" => Ok(URIName::Feed),
            "feedready" => Ok(URIName::Feedready),
            "finger" => Ok(URIName::Finger),
            "fish" => Ok(URIName::Fish),
            "gg" => Ok(URIName::Gg),
            "git" => Ok(URIName::Git),
            "gizmoproject" => Ok(URIName::Gizmoproject),
            "gtalk" => Ok(URIName::Gtalk),
            "ham" => Ok(URIName::Ham),
            "hcp" => Ok(URIName::Hcp),
            "icon" => Ok(URIName::Icon),
            "ipn" => Ok(URIName::Ipn),
            "irc" => Ok(URIName::Irc),
            "irc6" => Ok(URIName::Irc6),
            "ircs" => Ok(URIName::Ircs),
            "itms" => Ok(URIName::Itms),
            "jar" => Ok(URIName::Jar),
            "jms" => Ok(URIName::Jms),
            "keyparc" => Ok(URIName::Keyparc),
            "lastfm" => Ok(URIName::Lastfm),
            "ldaps" => Ok(URIName::Ldaps),
            "magnet" => Ok(URIName::Magnet),
            "maps" => Ok(URIName::Maps),
            "market" => Ok(URIName::Market),
            "message" => Ok(URIName::Message),
            "mms" => Ok(URIName::Mms),
            "ms-help" => Ok(URIName::MsHelp),
            "ms-settings-power" => Ok(URIName::MsSettingsPower),
            "msnim" => Ok(URIName::Msnim),
            "mumble" => Ok(URIName::Mumble),
            "mvn" => Ok(URIName::Mvn),
            "notes" => Ok(URIName::Notes),
            "oid" => Ok(URIName::Oid),
            "palm" => Ok(URIName::Palm),
            "paparazzi" => Ok(URIName::Paparazzi),
            "pkcs11" => Ok(URIName::Pkcs11),
            "platform" => Ok(URIName::Platform),
            "proxy" => Ok(URIName::Proxy),
            "psyc" => Ok(URIName::Psyc),
            "query" => Ok(URIName::Query),
            "res" => Ok(URIName::Res),
            "resource" => Ok(URIName::Resource),
            "rmi" => Ok(URIName::Rmi),
            "rsync" => Ok(URIName::Rsync),
            "rtmfp" => Ok(URIName::Rtmfp),
            "rtmp" => Ok(URIName::Rtmp),
            "secondlife" => Ok(URIName::Secondlife),
            "sftp" => Ok(URIName::Sftp),
            "sgn" => Ok(URIName::Sgn),
            "skype" => Ok(URIName::Skype),
            "smb" => Ok(URIName::Smb),
            "smtp" => Ok(URIName::Smtp),
            "soldat" => Ok(URIName::Soldat),
            "spotify" => Ok(URIName::Spotify),
            "ssh" => Ok(URIName::Ssh),
            "steam" => Ok(URIName::Steam),
            "submit" => Ok(URIName::Submit),
            "svn" => Ok(URIName::Svn),
            "teamspeak" => Ok(URIName::Teamspeak),
            "teliaeid" => Ok(URIName::Teliaeid),
            "things" => Ok(URIName::Things),
            "udp" => Ok(URIName::Udp),
            "unreal" => Ok(URIName::Unreal),
            "ut2004" => Ok(URIName::Ut2004),
            "ventrilo" => Ok(URIName::Ventrilo),
            "view-source" => Ok(URIName::ViewSource),
            "webcal" => Ok(URIName::Webcal),
            "wtai" => Ok(URIName::Wtai),
            "wyciwyg" => Ok(URIName::Wyciwyg),
            "xfire" => Ok(URIName::Xfire),
            "xri" => Ok(URIName::Xri),
            "ymsgr" => Ok(URIName::Ymsgr),
            "example" => Ok(URIName::Example),
            "ms-settings-cloudstorage" => Ok(URIName::MsSettingsCloudstorage),
            _ => Err(URINameError(())),
        }
    }
}
impl Display for URIName {
    fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error> {
        f.write_str(self.as_str())
    }
}