FileProjection

Struct FileProjection 

Source
pub struct FileProjection { /* private fields */ }
Expand description

A utility struct for holding a set of paths, and all children from those paths. Contains an associated set of “exclude” paths whose children should not be returned.

Implementations§

Source§

impl FileProjection

Source

pub fn new( src_paths: impl IntoIterator<Item = impl AsRef<Path>>, excl_paths: impl IntoIterator<Item = impl AsRef<Path>>, excl_exts: impl IntoIterator<Item = impl AsRef<OsStr>>, ) -> Result<Self, FileProjectionError>

Create a new FileProjection with the given src_paths, excl_paths and ignore-extensions Child files can either be got by projecting the src_paths, either from the filesystem (project_using_fs), or from some list (project_using_list). Once projection has occurred the projected files will be cached by this struct (This feature is mostly to avoid having to visit the filesystem more than once when performing large projections)

Projected files can be retrieved by calling projected_files

Source

pub fn contains(&self, src_path: impl AsRef<Path>) -> bool

Returns true if the given path is a child of any src_path, and is not a child of any excl_path.

Source

pub fn project_using_fs(&mut self) -> Result<Vec<Error>, FileProjectionError>

Visit the filesystem to get all child files which are a child of any of Self::src_paths, and which are not a child of Self::excl_paths.

§Return values

Returns Err() if any path in Self::src_paths or Self::excl_paths cannot be read from the filesystem.

Otherwise returns Ok() containing a list of all other errors encountered while retrieving paths from the filesystem.

§Panics

This function will panic if either project_using_fs or project_using_list has already been called.

Source

pub fn project_using_list( &mut self, list: impl IntoIterator<Item = impl AsRef<Path>>, )

Enumerate files by filtering a list of paths.

§Panics

This function will panic if either project_using_fs or project_using_list has already been called.

Source

pub fn projected_files(&self) -> &HashSet<PathBuf>

Obtain the set of all enumerated files. File enumeration must have already taken place.

§Panics

This function will panic if enumeration has not occurred.

Trait Implementations§

Source§

impl Clone for FileProjection

Source§

fn clone(&self) -> FileProjection

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for FileProjection

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V