pub enum Position {
Show 16 variants
BeforeScheme,
AfterScheme,
BeforeUsername,
AfterUsername,
BeforePassword,
AfterPassword,
BeforeHost,
AfterHost,
BeforePort,
AfterPort,
BeforePath,
AfterPath,
BeforeQuery,
AfterQuery,
BeforeFragment,
AfterFragment,
}
Expand description
Indicates a position within a URL based on its components.
A range of positions can be used for slicing Url
:
let serialization: &str = &some_url[..];
let serialization_without_fragment: &str = &some_url[..Position::AfterQuery];
let authority: &str = &some_url[Position::BeforeUsername..Position::AfterPort];
let data_url_payload: &str = &some_url[Position::BeforePath..Position::AfterQuery];
let scheme_relative: &str = &some_url[Position::BeforeUsername..];
In a pseudo-grammar (where [
…]?
makes a sub-sequence optional),
URL components and delimiters that separate them are:
url =
scheme ":"
[ "//" [ username [ ":" password ]? "@" ]? host [ ":" port ]? ]?
path [ "?" query ]? [ "#" fragment ]?
When a given component is not present,
its “before” and “after” position are the same
(so that &some_url[BeforeFoo..AfterFoo]
is the empty string)
and component ordering is preserved
(so that a missing query “is between” a path and a fragment).
The end of a component and the start of the next are either the same or separate
by a delimiter.
(Not that the initial /
of a path is considered part of the path here, not a delimiter.)
For example, &url[..BeforeFragment]
would include a #
delimiter (if present in url
),
so &url[..AfterQuery]
might be desired instead.
BeforeScheme
and AfterFragment
are always the start and end of the entire URL,
so &url[BeforeScheme..X]
is the same as &url[..X]
and &url[X..AfterFragment]
is the same as &url[X..]
.
Variants
BeforeScheme
AfterScheme
BeforeUsername
AfterUsername
BeforePassword
AfterPassword
BeforeHost
AfterHost
BeforePort
AfterPort
BeforePath
AfterPath
BeforeQuery
AfterQuery
BeforeFragment
AfterFragment
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for Position
impl Send for Position
impl Sync for Position
impl Unpin for Position
impl UnwindSafe for Position
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcepub fn to_owned(&self) -> T
pub fn to_owned(&self) -> T
Creates owned data from borrowed data, usually by cloning. Read more
sourcepub fn clone_into(&self, target: &mut T)
pub fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more