Tree

Struct Tree 

Source
pub struct Tree<S> { /* private fields */ }

Implementations§

Source§

impl<S> Tree<S>

Source

pub fn open_inferred<P: AsRef<Path>>( base: P, scheme: S, ) -> Result<Option<Self>, Error>

Open a tree with an inferred prefix part structure and extension constraint.

The result will be empty if and only if the store has no files (even if there are directories).

See the infer_prefix_part_lengths and infer_extension_constraint functions for important qualifications.

Source§

impl<S: Scheme> Tree<S>

Source

pub fn path(&self, name: S::NameRef<'_>) -> Result<PathBuf, String>

Return the path through the tree for the given name, including any fixed extension.

Source

pub fn open_file(&self, name: S::NameRef<'_>) -> Result<Option<File>, Error>

Try to open a file for reading for the given name, including any fixed extension.

Note that this function will probably not do the right thing for any extension configuration that does not either prohibit extensions or require a fixed extension.

Source

pub fn create_file(&self, name: S::NameRef<'_>) -> Result<Option<File>, Error>

Try to create a file for writing for the given name, including any fixed extension.

Note that this function will probably not do the right thing for any extension configuration that does not either prohibit extensions or require a fixed extension.

Source

pub fn entries(&self) -> Entries<'_, S>

Source§

impl Tree<Identity>

Source

pub fn builder<P: AsRef<Path>>(base: P) -> TreeBuilder<Identity>

Source

pub fn infer_prefix_part_lengths<P: AsRef<Path>>( base: P, ) -> Result<Option<Vec<usize>>, Error>

Infer the prefix part lengths used to create a store.

The result will be empty if and only if the store has no files (even if there are directories).

If this function returns a result, it is guaranteed to be correct if the store is valid, but the validity is not checked.

Source

pub fn infer_extension_constraint<P: AsRef<Path>>( base: P, ) -> Result<Option<Extension>, Error>

Infer the extension constraint used to create a store.

The result will be empty if and only if the store has no files (even if there are directories).

This function can only infer the extension constraint if it either prohibits extensions or requires all files to have the same extension.

Source

pub fn infer_extension_constraint_rec<P: AsRef<Path>>( current: P, ) -> Result<Option<Extension>, Error>

Trait Implementations§

Source§

impl<S: Clone> Clone for Tree<S>

Source§

fn clone(&self) -> Tree<S>

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<S: Debug> Debug for Tree<S>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<S: PartialEq> PartialEq for Tree<S>

Source§

fn eq(&self, other: &Tree<S>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<S: Eq> Eq for Tree<S>

Source§

impl<S> StructuralPartialEq for Tree<S>

Auto Trait Implementations§

§

impl<S> Freeze for Tree<S>
where S: Freeze,

§

impl<S> RefUnwindSafe for Tree<S>
where S: RefUnwindSafe,

§

impl<S> Send for Tree<S>
where S: Send,

§

impl<S> Sync for Tree<S>
where S: Sync,

§

impl<S> Unpin for Tree<S>
where S: Unpin,

§

impl<S> UnwindSafe for Tree<S>
where S: UnwindSafe,

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> 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.