pub struct Bulk { /* private fields */ }Expand description
A BulkExecutor and a sender of FmEvents.
It’s used to execute creation / renaming of multiple files at once.
Obviously it’s inspired by ranger.
Bulk holds a BulkExecutor only when bulk mode is present, None otherwise.
Once ask_filenames is executed, a new tmp file is created. It’s filled with every filename
of flagged files in current directory.
Modifications of this file are watched in a separate thread.
Once the file is written, its content is parsed and a confirmation is asked : format_confirmation
Renaming or creating is execute in bulk with execute.
Implementations§
Source§impl Bulk
impl Bulk
Sourcepub fn reset(&mut self)
pub fn reset(&mut self)
Reset bulk content to None, droping all created or renomed filename from previous execution.
Sourcepub fn ask_filenames(
&mut self,
flagged_in_current_dir: Vec<PathBuf>,
current_tab_path_str: &str,
) -> Result<()>
pub fn ask_filenames( &mut self, flagged_in_current_dir: Vec<PathBuf>, current_tab_path_str: &str, ) -> Result<()>
Ask user for filename.
Creates a temp file with every flagged filename in current dir. Modification of this file are then watched in a thread. The mode will change to BulkAction once something is written in the file.
§Errors
May fail if the user can’t create a file, read or write in /tmp May also fail if the watching thread fail.
pub fn watch_in_thread( &mut self, fm_sender: Arc<Sender<FmEvents>>, ) -> Result<()>
pub fn get_new_names(&mut self) -> Result<()>
Sourcepub fn format_confirmation(&self) -> Vec<String>
pub fn format_confirmation(&self) -> Vec<String>
String representation of the filetree modifications.
Sourcepub fn execute(
&mut self,
) -> Result<(Option<Vec<PathBuf>>, Option<Vec<PathBuf>>)>
pub fn execute( &mut self, ) -> Result<(Option<Vec<PathBuf>>, Option<Vec<PathBuf>>)>
Execute the action parsed from the file.
§Errors
May fail if bulk is still set to None. It should never happen. May fail if the new file can’t be created or the flagged file can’t be renamed.
Sourcepub fn temp_file(&self) -> Option<PathBuf>
pub fn temp_file(&self) -> Option<PathBuf>
Optional temporary file where filenames are edited by the user
None if self.bulk is None.
pub fn is_empty(&self) -> bool
pub fn len(&self) -> usize
pub fn index(&self) -> usize
pub fn next(&mut self)
pub fn prev(&mut self)
Sourcepub fn set_index(&mut self, index: usize)
pub fn set_index(&mut self, index: usize)
Set the index to a new value if the value is below the length.
pub fn style(&self, index: usize, style: &Style) -> Style
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Bulk
impl RefUnwindSafe for Bulk
impl Send for Bulk
impl Sync for Bulk
impl Unpin for Bulk
impl UnwindSafe for Bulk
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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)
fn as_any(&self) -> &(dyn Any + 'static)
&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)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&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
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
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 moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
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