#[non_exhaustive]
pub enum Scheme<'scheme> {
Show 305 variants AAA, AAAS, About, ACAP, ACCT, ACR, AdiumXtra, AFP, AFS, AIM, AMSS, Android, AppData, APT, Attachment, AW, Barion, BeShare, Bitcoin, BitcoinCash, Blob, Bolo, BrowserExt, Calculator, CallTo, CAP, Cast, Casts, Chrome, ChromeExtension, CID, CoAP, CoAPTCP, CoAPWS, CoAPS, CoAPSTCP, CoAPSWS, ComEventBriteAttendee, Content, Conti, CRID, CVS, DAB, Data, DAV, Diaspora, DICT, DID, DIS, DLNAPlayContainer, DLNAPlaySingle, DNS, DNTP, DPP, DRM, Drop, DTN, DVB, ED2K, ELSI, Example, FaceTime, Fax, Feed, FeedReady, File, FileSystem, Finger, Fish, FM, FTP, FuchsiaPkg, Geo, GG, Git, GizmoProject, Go, Gopher, Graph, GTalk, H323, HAM, HCAP, HCP, HTTP, HTTPS, HXXP, HXXPS, HydraZone, IAX, ICAP, Icon, IM, IMAP, Info, IoTDisc, IPN, IPP, IPPS, IRC, IRC6, IRCS, IRIS, IRISBEEP, IRISLWZ, IRISXPC, IRISXPCS, IsoStore, ITMS, Jabber, JAR, JMS, KeyParc, LastFM, LDAP, LDAPS, LoRaWAN, LVLT, Magnet, MailServer, MailTo, Maps, Market, Message, MicrosoftWindowsCamera, MicrosoftWindowsCameraMultiPicker, MicrosoftWindowsCameraPicker, MID, MMS, Modem, MongoDB, Moz, MSAccess, MSBrowserExtension, MSCalculator, MSDriveTo, MSEnrollment, MSExcel, MSEyeControlSpeech, MSGameBarServices, MSGamingOverlay, MSGetOffice, MSHelp, MSInfoPath, MSInputApp, MSLockScreenComponentConfig, MSMediaStreamID, MSMixedRealityCapture, MSOfficeApp, MSPeople, MSProject, MSPowerPoint, MSPublisher, MSRestoreTabCompanion, MSS, MSScreenClip, MSScreenSketch, MSSearch, MSSearchRepair, MSSecondaryScreenController, MSSeocndaryScreenSetup, MSSettings, MSSettingsAirplaneMode, MSSettingsBluetooth, MSSettingsCamera, MSSettingsCellular, MSSettingsCloudStorage, MSSettingsConnectableDevices, MSSettingsDisplaysTopology, MSSettingsEmailAndAccounts, MSSettingsLanguage, MSSettingsLocation, MSSettingsLock, MSSettingsNFCTransactions, MSSettingsNotifications, MSSettingsPower, MSSettingsPrivacy, MSSettingsProximity, MSSettingsScreenRotation, MSSettingsWiFi, MSSettingsWorkplace, MSSPD, MSSTTOverlay, MSTransitTo, MSUserActivitySet, MSVirtualTouchPad, MSVisio, MSWalkTo, MSWhiteboard, MSWhiteboardCMD, MSWord, MSNIM, MSRP, MSRPS, MTQP, Mumble, MUpdate, MVN, News, NFS, NI, NIH, NNTP, Notes, OCF, OID, OneNote, OneNoteCMD, OpaqueLockToken, OpenPGP4FPR, Pack, Palm, Paparazzi, PKCS11, Platform, POP, Pres, Prospero, Proxy, PWID, PSYC, QB, Query, Redis, RedisS, Reload, Res, Resource, RMI, RSync, RTMFP, RTMP, RTSP, RTSPS, RTSPU, SecondLife, Service, Session, SFTP, SGN, SHTTP, Sieve, SIP, SIPS, SimpleLedger, Skype, SMB, SMS, SMTP, SNews, SNMP, SOAPBEEP, SOAPBEEPS, Soldat, SPIFFE, Spotify, SSH, Steam, STUN, STUNS, Submit, SVN, Tag, TeamSpeak, Tel, TeliaEID, Telnet, TFTP, Things, ThisMessage, TIP, TN3270, Tool, TURN, TURNS, TV, UDP, Unreal, URN, UT2004, VEvent, VEMMI, Ventrilo, Videotex, VNC, ViewSource, WAIS, Webcal, WPID, WS, WSS, WTAI, WYCIWYG, XCON, XCONUserID, Xfire, XMLRPCBEEP, XMLRPCBEEPS, XMPP, XRI, YMSGR, Z3950, Z3950R, Z3950S, Unregistered(UnregisteredScheme<'scheme>),
}
Expand description

The scheme component as defined in [RFC3986, Section 3.5]. The schemes listed here come from iana.org. Any scheme not listed there is considered unregistered and will be contained in [Scheme::UnregisteredScheme].

An unregistered scheme is case-insensitive. Furthermore, percent-encoding is not allowed in schemes.

Variants (Non-exhaustive)

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.

AAA

AAAS

About

ACAP

ACCT

ACR

AdiumXtra

AFP

AFS

AIM

AMSS

Android

AppData

APT

Attachment

AW

Barion

BeShare

Bitcoin

BitcoinCash

Blob

Bolo

BrowserExt

Calculator

CallTo

CAP

Cast

Casts

Chrome

ChromeExtension

CID

CoAP

CoAPTCP

CoAPWS

CoAPS

CoAPSTCP

CoAPSWS

ComEventBriteAttendee

Content

Conti

CRID

CVS

DAB

Data

DAV

Diaspora

DICT

DID

DIS

DLNAPlayContainer

DLNAPlaySingle

DNS

DNTP

DPP

DRM

Drop

DTN

DVB

ED2K

ELSI

Example

FaceTime

Fax

Feed

FeedReady

File

FileSystem

Finger

Fish

FM

FTP

FuchsiaPkg

Geo

GG

Git

GizmoProject

Go

Gopher

Graph

GTalk

H323

HAM

HCAP

HCP

HTTP

HTTPS

HXXP

HXXPS

HydraZone

IAX

ICAP

Icon

IM

IMAP

Info

IoTDisc

IPN

IPP

IPPS

IRC

IRC6

IRCS

IRIS

IRISBEEP

IRISLWZ

IRISXPC

IRISXPCS

IsoStore

ITMS

Jabber

JAR

JMS

KeyParc

LastFM

LDAP

LDAPS

LoRaWAN

LVLT

Magnet

MailServer

MailTo

Maps

Market

Message

MicrosoftWindowsCamera

MicrosoftWindowsCameraMultiPicker

MicrosoftWindowsCameraPicker

MID

MMS

Modem

MongoDB

Moz

MSAccess

MSBrowserExtension

MSCalculator

MSDriveTo

MSEnrollment

MSExcel

MSEyeControlSpeech

MSGameBarServices

MSGamingOverlay

MSGetOffice

MSHelp

MSInfoPath

MSInputApp

MSLockScreenComponentConfig

MSMediaStreamID

MSMixedRealityCapture

MSOfficeApp

MSPeople

MSProject

MSPowerPoint

MSPublisher

MSRestoreTabCompanion

MSS

MSScreenClip

MSScreenSketch

MSSearch

MSSearchRepair

MSSecondaryScreenController

MSSeocndaryScreenSetup

MSSettings

MSSettingsAirplaneMode

MSSettingsBluetooth

MSSettingsCamera

MSSettingsCellular

MSSettingsCloudStorage

MSSettingsConnectableDevices

MSSettingsDisplaysTopology

MSSettingsEmailAndAccounts

MSSettingsLanguage

MSSettingsLocation

MSSettingsLock

MSSettingsNFCTransactions

MSSettingsNotifications

MSSettingsPower

MSSettingsPrivacy

MSSettingsProximity

MSSettingsScreenRotation

MSSettingsWiFi

MSSettingsWorkplace

MSSPD

MSSTTOverlay

MSTransitTo

MSUserActivitySet

MSVirtualTouchPad

MSVisio

MSWalkTo

MSWhiteboard

MSWhiteboardCMD

MSWord

MSNIM

MSRP

MSRPS

MTQP

Mumble

MUpdate

MVN

News

NFS

NI

NIH

NNTP

Notes

OCF

OID

OneNote

OneNoteCMD

OpaqueLockToken

OpenPGP4FPR

Pack

Palm

Paparazzi

PKCS11

Platform

POP

Pres

Prospero

Proxy

PWID

PSYC

QB

Query

Redis

RedisS

Reload

Res

Resource

RMI

RSync

RTMFP

RTMP

RTSP

RTSPS

RTSPU

SecondLife

Service

Session

SFTP

SGN

SHTTP

Sieve

SIP

SIPS

SimpleLedger

Skype

SMB

SMS

SMTP

SNews

SNMP

SOAPBEEP

SOAPBEEPS

Soldat

SPIFFE

Spotify

SSH

Steam

STUN

STUNS

Submit

SVN

Tag

TeamSpeak

Tel

TeliaEID

Telnet

TFTP

Things

ThisMessage

TIP

TN3270

Tool

TURN

TURNS

TV

UDP

Unreal

URN

UT2004

VEvent

VEMMI

Ventrilo

Videotex

VNC

ViewSource

WAIS

Webcal

WPID

WS

WSS

WTAI

WYCIWYG

XCON

XCONUserID

Xfire

XMLRPCBEEP

XMLRPCBEEPS

XMPP

XRI

YMSGR

Z3950

Z3950R

Z3950S

Unregistered(UnregisteredScheme<'scheme>)

Implementations

Returns whether the scheme is normalized.

A normalized scheme will be all lowercase. All standardized schemes are always considered normalized regardless of what source they were parsed from.

This function returns in constant-time.

Examples
use std::convert::TryFrom;

use uriparse::Scheme;

let scheme = Scheme::try_from("http").unwrap();
assert!(scheme.is_normalized());

let scheme = Scheme::try_from("HTTP").unwrap();
assert!(scheme.is_normalized());

let mut scheme = Scheme::try_from("MyScHeMe").unwrap();
assert!(!scheme.is_normalized());
scheme.normalize();
assert!(scheme.is_normalized());

Normalizes the scheme so that it is all lowercase.

Examples
use std::convert::TryFrom;

use uriparse::Scheme;

let mut scheme = Scheme::try_from("http").unwrap();
scheme.normalize();
assert_eq!(scheme, "http");

let mut scheme = Scheme::try_from("MyScHeMe").unwrap();
scheme.normalize();
assert_eq!(scheme, "myscheme");

Returns a new scheme which is identical but has a lifetime tied to this scheme.

Returns a str representation of the scheme.

The case of the scheme will be lowercase if it was a registered scheme. Otherwise, the string representation will be exactly that of the original string including case-sensitivity.

Examples
use std::convert::TryFrom;

use uriparse::Scheme;

assert_eq!(Scheme::HTTP.as_str(), "http");

let scheme = Scheme::try_from("TEST-scheme").unwrap();
assert_eq!(scheme.as_str(), "TEST-scheme");

Converts the Scheme into an owned copy.

If you construct the scheme from a source with a non-static lifetime, you may run into lifetime problems due to the way it is designed. Calling this function will ensure that the returned value has a static lifetime.

This is different from just cloning. Cloning the scheme will just copy the references (in the case of an unregistered scheme), and thus the lifetime will remain the same.

Returns the registration status of the scheme.

Examples
use uriparse::{Scheme, SchemeStatus};

assert_eq!(Scheme::HTTP.status(), SchemeStatus::Permanent);

Trait Implementations

Performs the conversion.

Performs the conversion.

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

Performs the conversion.

Feeds this value into the given Hasher. Read more

Feeds a slice of this type into the given Hasher. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.