Directory

Struct Directory 

Source
pub struct Directory {
    pub path: Arc<Path>,
    pub content: Vec<FileInfo>,
    pub index: usize,
    /* private fields */
}
Expand description

Holds the information about file in the current directory. We know about the current path, the files themselves, the selected index, the “display all files including hidden” flag and the key to sort files.

Fields§

§path: Arc<Path>

The current path

§content: Vec<FileInfo>

A vector of FileInfo with every file in current path

§index: usize

The index of the selected file.

Implementations§

Source§

impl Directory

Source

pub fn new( path: &Path, users: &Users, filter: &FilterKind, show_hidden: bool, ) -> Result<Self>

Reads the paths and creates a new PathContent. Files are sorted by filename by default. Selects the first file if any.

Source

pub fn change_directory( &mut self, path: &Path, settings: &TabSettings, users: &Users, ) -> Result<()>

Source

pub fn sort(&mut self, sort_kind: &SortKind)

Sort the file with current key.

Source

pub fn owner_column_width(&self) -> usize

Calculates the size of the owner column.

Source

pub fn group_column_width(&self) -> usize

Calculates the size of the group column.

Source

pub fn select_index(&mut self, index: usize)

Select the file from a given index.

Source

pub fn reset_files( &mut self, settings: &TabSettings, users: &Users, ) -> Result<()>

Reset the current file content. Reads and sort the content with current key. Select the first file if any.

Source

pub fn is_selected_dir(&self) -> Result<bool>

Is the selected file a directory ? It may fails if the current path is empty, aka if nothing is selected.

Source

pub fn used_space(&self) -> String

Human readable string representation of the space used by files in current path. No recursive exploration of directory.

Source

pub fn git_string(&self) -> Result<String>

A string representation of the git status of the path.

Source

pub fn iter(&self) -> Iter<'_, FileInfo>

Returns an iterator of the files (FileInfo) in content.

Source

pub fn enumerate(&self) -> Enumerate<Iter<'_, FileInfo>>

Returns an enumeration of the files (FileInfo) in content.

Source

pub fn select_file(&mut self, jump_target: &Path) -> usize

Select the file from its path. Returns its index in content.

Source

pub fn paths(&self) -> Vec<&Path>

Returns a vector of paths from content

Source

pub fn is_dotdot_selected(&self) -> bool

True iff the selected path is “..” which is the parent dir.

Source

pub fn videos(&self) -> VecDeque<PathBuf>

Trait Implementations§

Source§

impl Content<FileInfo> for Directory

Implement a selectable content for this struct. This trait allows to navigate through a vector of element content_type. It implements: is_empty, len, next, prev, selected. selected returns an optional reference to the value.

Source§

fn selected(&self) -> Option<&FileInfo>

Returns a reference to the selected content.

Source§

fn content(&self) -> &Vec<FileInfo>

A reference to the content.

Source§

fn style(&self, index: usize, style: &Style) -> Style

Reverse the received effect if the index match the selected index.

Source§

fn push(&mut self, element: FileInfo)

Push a new element at the end of content

Source§

impl IndexToIndex<FileInfo> for Directory

Source§

fn index_to_index( &self, ) -> Chain<Skip<Iter<'_, FileInfo>>, Take<Iter<'_, FileInfo>>>

Iterate over line from current index to bottom then from top to current index.

Useful when going to next match in search results

Source§

impl Selectable for Directory

Implement a selectable content for this struct. This trait allows to navigate through a vector of element content_type. It implements: is_empty, len, next, prev, selected. selected returns an optional reference to the value.

Source§

fn is_empty(&self) -> bool

True if the content is empty.

Source§

fn len(&self) -> usize

The size of the content.

Source§

fn prev(&mut self)

Select the prev item.

Source§

fn next(&mut self)

Select the next item.

Source§

fn index(&self) -> usize

Returns the index of the selected item.

Source§

fn set_index(&mut self, index: usize)

Set the index to a new value if the value is below the length.

Source§

fn selected_is_last(&self) -> bool

true if the selected element is the last of content

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
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

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSend for T
where T: Send,