Enum Position
pub enum Position
Indicates a position within a URL based on its components.
A range of positions can be used for slicing Url:
# use ;
#
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.
(Note 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
impl Clone for Position
fn clone(&self) -> Position
impl Copy for Position
impl Debug for Position
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Auto Trait Implementations
impl Freeze for Position
impl RefUnwindSafe for Position
impl Send for Position
impl Sync for Position
impl Unpin for Position
impl UnsafeUnpin for Position
impl UnwindSafe for Position
Blanket Implementations
impl<T> Any for Position
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for Position
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for Position
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> CloneToUninit for Position
where
T: Clone,
unsafe fn clone_to_uninit(&self, dest: *mut u8)
impl<T> From<T> for Position
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for Position
where
T: Clone,
type Owned = T;fn to_owned(&self) -> Tfn clone_into(&self, target: &mut T)
impl<T, U> Into<U> for Position
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for Position
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for Position
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>