Struct typed_path::Utf8WindowsComponents
source · pub struct Utf8WindowsComponents<'a> { /* private fields */ }
Expand description
Represents a Windows-specific Components
Implementations§
source§impl<'a> Utf8WindowsComponents<'a>
impl<'a> Utf8WindowsComponents<'a>
sourcepub fn as_path<T>(&self) -> &'a Utf8Path<T>where
T: for<'enc> Utf8Encoding<'enc>,
pub fn as_path<T>(&self) -> &'a Utf8Path<T>where
T: for<'enc> Utf8Encoding<'enc>,
Extracts a slice corresponding to the portion of the path remaining for iteration.
Examples
use typed_path::{Utf8Path, Utf8WindowsEncoding};
// NOTE: A path cannot be created on its own without a defined encoding
let mut components = Utf8Path::<Utf8WindowsEncoding>::new(r"\tmp\foo\bar.txt").components();
components.next();
components.next();
assert_eq!(Utf8Path::<Utf8WindowsEncoding>::new(r"foo\bar.txt"), components.as_path());
source§impl<'a> Utf8WindowsComponents<'a>
impl<'a> Utf8WindowsComponents<'a>
sourcepub fn has_prefix(&self) -> bool
pub fn has_prefix(&self) -> bool
Returns true if the represented path has a prefix
sourcepub fn prefix(&self) -> Option<Utf8WindowsPrefixComponent<'_>>
pub fn prefix(&self) -> Option<Utf8WindowsPrefixComponent<'_>>
Returns the prefix of the represented path’s components if it has one
sourcepub fn prefix_kind(&self) -> Option<Utf8WindowsPrefix<'_>>
pub fn prefix_kind(&self) -> Option<Utf8WindowsPrefix<'_>>
Returns the kind of prefix associated with the represented path if it has one
sourcepub fn has_any_verbatim_prefix(&self) -> bool
pub fn has_any_verbatim_prefix(&self) -> bool
Returns true if represented path has a verbatim, verbatim UNC, or verbatim disk prefix
sourcepub fn has_verbatim_prefix(&self) -> bool
pub fn has_verbatim_prefix(&self) -> bool
Returns true if represented path has a verbatim prefix (e.g. `\?\pictures)
sourcepub fn has_verbatim_unc_prefix(&self) -> bool
pub fn has_verbatim_unc_prefix(&self) -> bool
Returns true if represented path has a verbatim UNC prefix (e.g. \\?\UNC\server\share
)
sourcepub fn has_verbatim_disk_prefix(&self) -> bool
pub fn has_verbatim_disk_prefix(&self) -> bool
Returns true if represented path has a verbatim disk prefix (e.g. \\?\C:
)
sourcepub fn has_device_ns_prefix(&self) -> bool
pub fn has_device_ns_prefix(&self) -> bool
Returns true if represented path has a device NS prefix (e.g. \\.\BrainInterface
)
sourcepub fn has_unc_prefix(&self) -> bool
pub fn has_unc_prefix(&self) -> bool
Returns true if represented path has a UNC prefix (e.g. \\server\share
)
sourcepub fn has_disk_prefix(&self) -> bool
pub fn has_disk_prefix(&self) -> bool
Returns true if represented path has a disk prefix (e.g. C:
)
sourcepub fn has_physical_root(&self) -> bool
pub fn has_physical_root(&self) -> bool
Returns true if there is a separator immediately after the prefix, or separator starts the components if there is no prefix
e.g. C:\
and \path
would return true whereas \\?\path
would return false
sourcepub fn has_implicit_root(&self) -> bool
pub fn has_implicit_root(&self) -> bool
Returns true if there is a root separator without a Utf8WindowsComponent::RootDir
needing to be present. This is tied to prefixes like verbatim \\?\
and UNC \\
.
Really, it’s everything but a disk prefix of C:
that provide an implicit root
Trait Implementations§
source§impl AsRef<[u8]> for Utf8WindowsComponents<'_>
impl AsRef<[u8]> for Utf8WindowsComponents<'_>
source§impl<T> AsRef<Utf8Path<T>> for Utf8WindowsComponents<'_>where
T: for<'enc> Utf8Encoding<'enc>,
impl<T> AsRef<Utf8Path<T>> for Utf8WindowsComponents<'_>where
T: for<'enc> Utf8Encoding<'enc>,
source§impl AsRef<str> for Utf8WindowsComponents<'_>
impl AsRef<str> for Utf8WindowsComponents<'_>
source§impl<'a> Clone for Utf8WindowsComponents<'a>
impl<'a> Clone for Utf8WindowsComponents<'a>
source§impl<'a> Debug for Utf8WindowsComponents<'a>
impl<'a> Debug for Utf8WindowsComponents<'a>
source§impl<'a> DoubleEndedIterator for Utf8WindowsComponents<'a>
impl<'a> DoubleEndedIterator for Utf8WindowsComponents<'a>
source§fn next_back(&mut self) -> Option<Self::Item>
fn next_back(&mut self) -> Option<Self::Item>
source§fn advance_back_by(&mut self, n: usize) -> Result<(), NonZeroUsize>
fn advance_back_by(&mut self, n: usize) -> Result<(), NonZeroUsize>
iter_advance_by
)n
elements. Read more1.37.0 · source§fn nth_back(&mut self, n: usize) -> Option<Self::Item>
fn nth_back(&mut self, n: usize) -> Option<Self::Item>
n
th element from the end of the iterator. Read more1.27.0 · source§fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
fn try_rfold<B, F, R>(&mut self, init: B, f: F) -> R
Iterator::try_fold()
: it takes
elements starting from the back of the iterator. Read moresource§impl<'a> Iterator for Utf8WindowsComponents<'a>
impl<'a> Iterator for Utf8WindowsComponents<'a>
§type Item = <Utf8WindowsComponents<'a> as Utf8Components<'a>>::Component
type Item = <Utf8WindowsComponents<'a> as Utf8Components<'a>>::Component
source§fn next(&mut self) -> Option<Self::Item>
fn next(&mut self) -> Option<Self::Item>
source§fn next_chunk<const N: usize>(
&mut self
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
fn next_chunk<const N: usize>(
&mut self
) -> Result<[Self::Item; N], IntoIter<Self::Item, N>>where
Self: Sized,
iter_next_chunk
)N
values. Read more1.0.0 · source§fn size_hint(&self) -> (usize, Option<usize>)
fn size_hint(&self) -> (usize, Option<usize>)
1.0.0 · source§fn count(self) -> usizewhere
Self: Sized,
fn count(self) -> usizewhere
Self: Sized,
1.0.0 · source§fn last(self) -> Option<Self::Item>where
Self: Sized,
fn last(self) -> Option<Self::Item>where
Self: Sized,
source§fn advance_by(&mut self, n: usize) -> Result<(), NonZeroUsize>
fn advance_by(&mut self, n: usize) -> Result<(), NonZeroUsize>
iter_advance_by
)n
elements. Read more1.0.0 · source§fn nth(&mut self, n: usize) -> Option<Self::Item>
fn nth(&mut self, n: usize) -> Option<Self::Item>
n
th element of the iterator. Read more1.28.0 · source§fn step_by(self, step: usize) -> StepBy<Self>where
Self: Sized,
fn step_by(self, step: usize) -> StepBy<Self>where
Self: Sized,
1.0.0 · source§fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
fn chain<U>(self, other: U) -> Chain<Self, <U as IntoIterator>::IntoIter>
1.0.0 · source§fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>where
Self: Sized,
U: IntoIterator,
fn zip<U>(self, other: U) -> Zip<Self, <U as IntoIterator>::IntoIter>where
Self: Sized,
U: IntoIterator,
source§fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
fn intersperse_with<G>(self, separator: G) -> IntersperseWith<Self, G>
iter_intersperse
)separator
between adjacent items of the original iterator. Read more1.0.0 · source§fn map<B, F>(self, f: F) -> Map<Self, F>
fn map<B, F>(self, f: F) -> Map<Self, F>
1.0.0 · source§fn filter<P>(self, predicate: P) -> Filter<Self, P>
fn filter<P>(self, predicate: P) -> Filter<Self, P>
1.0.0 · source§fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
fn filter_map<B, F>(self, f: F) -> FilterMap<Self, F>
1.0.0 · source§fn enumerate(self) -> Enumerate<Self>where
Self: Sized,
fn enumerate(self) -> Enumerate<Self>where
Self: Sized,
1.0.0 · source§fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
fn skip_while<P>(self, predicate: P) -> SkipWhile<Self, P>
1.0.0 · source§fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
fn take_while<P>(self, predicate: P) -> TakeWhile<Self, P>
1.57.0 · source§fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
fn map_while<B, P>(self, predicate: P) -> MapWhile<Self, P>
1.0.0 · source§fn skip(self, n: usize) -> Skip<Self>where
Self: Sized,
fn skip(self, n: usize) -> Skip<Self>where
Self: Sized,
n
elements. Read more1.0.0 · source§fn take(self, n: usize) -> Take<Self>where
Self: Sized,
fn take(self, n: usize) -> Take<Self>where
Self: Sized,
n
elements, or fewer
if the underlying iterator ends sooner. Read more1.0.0 · source§fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
fn flat_map<U, F>(self, f: F) -> FlatMap<Self, U, F>
source§fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
fn map_windows<F, R, const N: usize>(self, f: F) -> MapWindows<Self, F, N>
iter_map_windows
)f
for each contiguous window of size N
over
self
and returns an iterator over the outputs of f
. Like slice::windows()
,
the windows during mapping overlap as well. Read more1.0.0 · source§fn inspect<F>(self, f: F) -> Inspect<Self, F>
fn inspect<F>(self, f: F) -> Inspect<Self, F>
1.0.0 · source§fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
fn by_ref(&mut self) -> &mut Selfwhere
Self: Sized,
source§fn collect_into<E>(self, collection: &mut E) -> &mut E
fn collect_into<E>(self, collection: &mut E) -> &mut E
iter_collect_into
)1.0.0 · source§fn partition<B, F>(self, f: F) -> (B, B)
fn partition<B, F>(self, f: F) -> (B, B)
source§fn partition_in_place<'a, T, P>(self, predicate: P) -> usize
fn partition_in_place<'a, T, P>(self, predicate: P) -> usize
iter_partition_in_place
)true
precede all those that return false
.
Returns the number of true
elements found. Read moresource§fn is_partitioned<P>(self, predicate: P) -> bool
fn is_partitioned<P>(self, predicate: P) -> bool
iter_is_partitioned
)true
precede all those that return false
. Read more1.27.0 · source§fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
fn try_fold<B, F, R>(&mut self, init: B, f: F) -> R
1.27.0 · source§fn try_for_each<F, R>(&mut self, f: F) -> R
fn try_for_each<F, R>(&mut self, f: F) -> R
1.0.0 · source§fn fold<B, F>(self, init: B, f: F) -> B
fn fold<B, F>(self, init: B, f: F) -> B
1.51.0 · source§fn reduce<F>(self, f: F) -> Option<Self::Item>
fn reduce<F>(self, f: F) -> Option<Self::Item>
source§fn try_reduce<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
fn try_reduce<F, R>( &mut self, f: F ) -> <<R as Try>::Residual as Residual<Option<<R as Try>::Output>>>::TryType
iterator_try_reduce
)1.0.0 · source§fn all<F>(&mut self, f: F) -> bool
fn all<F>(&mut self, f: F) -> bool
1.0.0 · source§fn any<F>(&mut self, f: F) -> bool
fn any<F>(&mut self, f: F) -> bool
1.0.0 · source§fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
fn find<P>(&mut self, predicate: P) -> Option<Self::Item>
1.30.0 · source§fn find_map<B, F>(&mut self, f: F) -> Option<B>
fn find_map<B, F>(&mut self, f: F) -> Option<B>
source§fn try_find<F, R>(
&mut self,
f: F
) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
fn try_find<F, R>( &mut self, f: F ) -> <<R as Try>::Residual as Residual<Option<Self::Item>>>::TryType
try_find
)1.0.0 · source§fn position<P>(&mut self, predicate: P) -> Option<usize>
fn position<P>(&mut self, predicate: P) -> Option<usize>
1.6.0 · source§fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn max_by_key<B, F>(self, f: F) -> Option<Self::Item>
1.15.0 · source§fn max_by<F>(self, compare: F) -> Option<Self::Item>
fn max_by<F>(self, compare: F) -> Option<Self::Item>
1.6.0 · source§fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
fn min_by_key<B, F>(self, f: F) -> Option<Self::Item>
1.15.0 · source§fn min_by<F>(self, compare: F) -> Option<Self::Item>
fn min_by<F>(self, compare: F) -> Option<Self::Item>
1.0.0 · source§fn rev(self) -> Rev<Self>where
Self: Sized + DoubleEndedIterator,
fn rev(self) -> Rev<Self>where
Self: Sized + DoubleEndedIterator,
1.0.0 · source§fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
fn unzip<A, B, FromA, FromB>(self) -> (FromA, FromB)
1.36.0 · source§fn copied<'a, T>(self) -> Copied<Self>
fn copied<'a, T>(self) -> Copied<Self>
source§fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>where
Self: Sized,
fn array_chunks<const N: usize>(self) -> ArrayChunks<Self, N>where
Self: Sized,
iter_array_chunks
)N
elements of the iterator at a time. Read more1.11.0 · source§fn product<P>(self) -> P
fn product<P>(self) -> P
source§fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
fn cmp_by<I, F>(self, other: I, cmp: F) -> Ordering
iter_order_by
)Iterator
with those
of another with respect to the specified comparison function. Read more1.5.0 · source§fn partial_cmp<I>(self, other: I) -> Option<Ordering>
fn partial_cmp<I>(self, other: I) -> Option<Ordering>
PartialOrd
elements of
this Iterator
with those of another. The comparison works like short-circuit
evaluation, returning a result without comparing the remaining elements.
As soon as an order can be determined, the evaluation stops and a result is returned. Read moresource§fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
fn partial_cmp_by<I, F>(self, other: I, partial_cmp: F) -> Option<Ordering>where
Self: Sized,
I: IntoIterator,
F: FnMut(Self::Item, <I as IntoIterator>::Item) -> Option<Ordering>,
iter_order_by
)Iterator
with those
of another with respect to the specified comparison function. Read moresource§fn eq_by<I, F>(self, other: I, eq: F) -> bool
fn eq_by<I, F>(self, other: I, eq: F) -> bool
iter_order_by
)1.5.0 · source§fn lt<I>(self, other: I) -> bool
fn lt<I>(self, other: I) -> bool
Iterator
are lexicographically
less than those of another. Read more1.5.0 · source§fn le<I>(self, other: I) -> bool
fn le<I>(self, other: I) -> bool
Iterator
are lexicographically
less or equal to those of another. Read more1.5.0 · source§fn gt<I>(self, other: I) -> bool
fn gt<I>(self, other: I) -> bool
Iterator
are lexicographically
greater than those of another. Read more1.5.0 · source§fn ge<I>(self, other: I) -> bool
fn ge<I>(self, other: I) -> bool
Iterator
are lexicographically
greater than or equal to those of another. Read moresource§fn is_sorted_by<F>(self, compare: F) -> bool
fn is_sorted_by<F>(self, compare: F) -> bool
is_sorted
)source§fn is_sorted_by_key<F, K>(self, f: F) -> bool
fn is_sorted_by_key<F, K>(self, f: F) -> bool
is_sorted
)source§impl<'a> Ord for Utf8WindowsComponents<'a>
impl<'a> Ord for Utf8WindowsComponents<'a>
source§impl<'a> PartialEq for Utf8WindowsComponents<'a>
impl<'a> PartialEq for Utf8WindowsComponents<'a>
source§impl<'a> PartialOrd for Utf8WindowsComponents<'a>
impl<'a> PartialOrd for Utf8WindowsComponents<'a>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl<'a> Utf8Components<'a> for Utf8WindowsComponents<'a>
impl<'a> Utf8Components<'a> for Utf8WindowsComponents<'a>
source§fn is_absolute(&self) -> bool
fn is_absolute(&self) -> bool
Returns true only if the path represented by the components has a prefix followed by a root directory
e.g. C:\some\path
-> true, C:some\path
-> false
source§fn has_root(&self) -> bool
fn has_root(&self) -> bool
Returns true if the path
has either:
- physical root, meaning it begins with the separator (e.g.
\my\path
orC:\
) - implicit root, meaning it begins with a prefix that is not a drive (e.g.
\\?\pictures
)
§type Component = Utf8WindowsComponent<'a>
type Component = Utf8WindowsComponent<'a>
Utf8Component
iterated over