Flagged

Struct Flagged 

Source
pub struct Flagged {
    pub content: Vec<PathBuf>,
    pub index: usize,
}
Expand description

The flagged files and an index, allowing navigation when the flagged files are displayed. We record here every flagged file by its path, allowing deletion, renaming, copying, moving and other actions.

Fields§

§content: Vec<PathBuf>

Contains the different flagged files. It’s basically a Set (of whatever kind) and insertion would be faster using a set. Iteration is faster with a vector and we need a vector to use the common trait SelectableContent which can be implemented with a macro. We use binary search in every non standard method (insertion, removal, search).

§index: usize

The index of the selected file. Used to jump.

Implementations§

Source§

impl Flagged

Source

pub fn update(&mut self, content: Vec<PathBuf>)

Source

pub fn extend(&mut self, content: Vec<PathBuf>)

Source

pub fn clear(&mut self)

Source

pub fn remove_selected(&mut self)

Source

pub fn push(&mut self, path: PathBuf)

Push a new path into the content. We maintain the content sorted and it’s used to make contains faster.

Source

pub fn toggle(&mut self, path: &Path)

Toggle the flagged status of a path. Remove the path from the content if it’s flagged, flag it if it’s not. The implantation assumes the content to be sorted.

Source

pub fn contains(&self, path: &Path) -> bool

True if the path is flagged. Since we maintain the content sorted, we can use a binary search and compensate a little bit with using a vector instead of a set.

Source

pub fn in_dir(&self, dir: &Path) -> Vec<PathBuf>

Returns a vector of path which are present in the current directory but ARE NOT the current dir. This prevents the current directory (or root path in tree display mode) to be altered by bulk.

Source

pub fn content_to_string(&self) -> String

Returns a string with every path in content on a separate line.

Source

pub fn replace_by_string(&mut self, files: String)

Source

pub fn as_strings(&self) -> Vec<String>

Returns the flagged files as a vector of strings

Source

pub fn should_all_be_opened_in_neovim(&self) -> bool

Source

pub fn remove_non_existant(&mut self)

Remove all files from flagged which doesn’t exists.

Trait Implementations§

Source§

impl Content<PathBuf> for Flagged

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

Source§

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

Returns a reference to the selected content.

Source§

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

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: PathBuf)

Push a new element at the end of content

Source§

impl Default for Flagged

Source§

fn default() -> Flagged

Returns the “default value” for a type. Read more
Source§

impl DrawMenu<PathBuf> for Flagged

Source§

fn draw_menu(&self, f: &mut Frame<'_>, rect: &Rect, window: &ContentWindow)
where Self: Content<T>,

Source§

impl Selectable for Flagged

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, set_index and selected_is_last.

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 + Send + Sync>

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> MaybeSend for T
where T: Send,