Enum Position
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
Implementations
impl Clone for Position
fn clone(self: &Self) -> Position
impl Copy for Position
impl Debug for Position
fn fmt(self: &Self, f: &mut Formatter<'_>) -> Result
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
impl<T> Any for Position
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for Position
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for Position
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> CloneToUninit for Position
unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)
impl<T> ErasedDestructor for Position
impl<T> From for Position
fn from(t: T) -> TReturns the argument unchanged.
impl<T> ToOwned for Position
fn to_owned(self: &Self) -> Tfn clone_into(self: &Self, target: &mut T)
impl<T, U> Into for Position
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for Position
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for Position
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>