[][src]Enum uriparse::scheme::Scheme

#[non_exhaustive]
pub enum Scheme<'scheme> { AAA, AAAS, About, ACAP, ACCT, ACR, AdiumXtra, AFP, AFS, AIM, AppData, APT, Attachment, AW, Barion, BeShare, Bitcoin, BitcoinCash, Blob, Bolo, BrowserExt, Calculator, CallTo, CAP, Chrome, ChromeExtension, CID, CoAP, CoAPTCP, CoAPWS, CoAPS, CoAPSTCP, CoAPSWS, ComEventBriteAttendee, Content, Conti, CRID, CVS, Data, DAV, Diaspora, DICT, DID, DIS, DLNAPlayContainer, DLNAPlaySingle, DNS, DNTP, DPP, DTN, DVB, ED2K, ELSI, Example, FaceTime, Fax, Feed, FeedReady, File, FileSystem, Finger, Fish, FTP, 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, 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, PKCKS11, 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>), }

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)

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.
AAAAAASAboutACAPACCTACRAdiumXtraAFPAFSAIMAppDataAPTAttachmentAWBarionBeShareBitcoinBitcoinCashBlobBoloBrowserExtCalculatorCallToCAPChromeChromeExtensionCIDCoAPCoAPTCPCoAPWSCoAPSCoAPSTCPCoAPSWSComEventBriteAttendeeContentContiCRIDCVSDataDAVDiasporaDICTDIDDISDLNAPlayContainerDLNAPlaySingleDNSDNTPDPPDTNDVBED2KELSIExampleFaceTimeFaxFeedFeedReadyFileFileSystemFingerFishFTPGeoGGGitGizmoProjectGoGopherGraphGTalkH323HAMHCAPHCPHTTPHTTPSHXXPHXXPSHydraZoneIAXICAPIconIMIMAPInfoIoTDiscIPNIPPIPPSIRCIRC6IRCSIRISIRISBEEPIRISLWZIRISXPCIRISXPCSIsoStoreITMSJabberJARJMSKeyParcLastFMLDAPLDAPSLVLTMagnetMailServerMailToMapsMarketMessageMicrosoftWindowsCameraMicrosoftWindowsCameraMultiPickerMicrosoftWindowsCameraPickerMIDMMSModemMongoDBMozMSAccessMSBrowserExtensionMSCalculatorMSDriveToMSEnrollmentMSExcelMSEyeControlSpeechMSGameBarServicesMSGamingOverlayMSGetOfficeMSHelpMSInfoPathMSInputAppMSLockScreenComponentConfigMSMediaStreamIDMSMixedRealityCaptureMSOfficeAppMSPeopleMSProjectMSPowerPointMSPublisherMSRestoreTabCompanionMSSMSScreenClipMSScreenSketchMSSearchMSSearchRepairMSSecondaryScreenControllerMSSeocndaryScreenSetupMSSettingsMSSettingsAirplaneModeMSSettingsBluetoothMSSettingsCameraMSSettingsCellularMSSettingsCloudStorageMSSettingsConnectableDevicesMSSettingsDisplaysTopologyMSSettingsEmailAndAccountsMSSettingsLanguageMSSettingsLocationMSSettingsLockMSSettingsNFCTransactionsMSSettingsNotificationsMSSettingsPowerMSSettingsPrivacyMSSettingsProximityMSSettingsScreenRotationMSSettingsWiFiMSSettingsWorkplaceMSSPDMSSTTOverlayMSTransitToMSUserActivitySetMSVirtualTouchPadMSVisioMSWalkToMSWhiteboardMSWhiteboardCMDMSWordMSNIMMSRPMSRPSMTQPMumbleMUpdateMVNNewsNFSNINIHNNTPNotesOCFOIDOneNoteOneNoteCMDOpaqueLockTokenOpenPGP4FPRPackPalmPaparazziPKCKS11PlatformPOPPresProsperoProxyPWIDPSYCQBQueryRedisRedisSReloadResResourceRMIRSyncRTMFPRTMPRTSPRTSPSRTSPUSecondLifeServiceSessionSFTPSGNSHTTPSieveSIPSIPSSimpleLedgerSkypeSMBSMSSMTPSNewsSNMPSOAPBEEPSOAPBEEPSSoldatSPIFFESpotifySSHSteamSTUNSTUNSSubmitSVNTagTeamSpeakTelTeliaEIDTelnetTFTPThingsThisMessageTIPTN3270ToolTURNTURNSTVUDPUnrealURNUT2004VEventVEMMIVentriloVideotexVNCViewSourceWAISWebcalWPIDWSWSSWTAIWYCIWYGXCONXCONUserIDXfireXMLRPCBEEPXMLRPCBEEPSXMPPXRIYMSGRZ3950Z3950RZ3950SUnregistered(UnregisteredScheme<'scheme>)

Methods

impl<'_> Scheme<'_>[src]

pub fn is_normalized(&self) -> bool[src]

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());

pub fn normalize(&mut self)[src]

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");

impl<'scheme> Scheme<'scheme>[src]

pub fn as_borrowed(&self) -> Scheme[src]

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

pub fn as_str(&self) -> &str[src]

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");

pub fn into_owned(self) -> Scheme<'static>[src]

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.

pub fn status(&self) -> SchemeStatus[src]

Returns the registration status of the scheme.

Examples

use uriparse::{Scheme, SchemeStatus};

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

Trait Implementations

impl<'scheme> Clone for Scheme<'scheme>[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl<'_> PartialEq<str> for Scheme<'_>[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl<'scheme> PartialEq<Scheme<'scheme>> for str[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl<'a, '_> PartialEq<&'a str> for Scheme<'_>[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl<'a, 'scheme> PartialEq<Scheme<'scheme>> for &'a str[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl<'scheme> PartialEq<Scheme<'scheme>> for Scheme<'scheme>[src]

impl<'scheme> Eq for Scheme<'scheme>[src]

impl<'_> AsRef<[u8]> for Scheme<'_>[src]

impl<'_> AsRef<str> for Scheme<'_>[src]

impl<'scheme> From<Scheme<'scheme>> for String[src]

impl<'_> Display for Scheme<'_>[src]

impl<'scheme> Debug for Scheme<'scheme>[src]

impl<'scheme> TryFrom<&'scheme [u8]> for Scheme<'scheme>[src]

type Error = InvalidScheme

The type returned in the event of a conversion error.

impl<'scheme> TryFrom<&'scheme str> for Scheme<'scheme>[src]

type Error = InvalidScheme

The type returned in the event of a conversion error.

impl<'scheme> Hash for Scheme<'scheme>[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

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

Auto Trait Implementations

impl<'scheme> Send for Scheme<'scheme>

impl<'scheme> Sync for Scheme<'scheme>

Blanket Implementations

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.