pub struct Session { /* private fields */ }Expand description
Everything about the current session. We keep track of display settings (metadata, dual pane, second pane as preview). Display hidden files is read from args or set to false by default. Since it’s specific to a tab, it’s not stored here.
Reads its display values from a session file and updates them when modified.
The file is stored at crate::common::SESSION_PATH which points to ~/.config/fm/session.yaml.
Unreachable or unreadable files are ignored.
Holds settings about display :
- do we display one or two tabs ? Default to true.
- do we display files metadata ? Default to true.
- do we use to second pane to preview files ? Default to false.
Implementations§
Source§impl Session
impl Session
Sourcepub fn new(width: u16) -> Self
pub fn new(width: u16) -> Self
Creates a new instance of DisplaySettings.
Tries to read them from the session file.
Use default value if the file can’t be read.
pub fn dual(&self) -> bool
pub fn metadata(&self) -> bool
pub fn preview(&self) -> bool
Sourcepub fn display_wide_enough(width: u16) -> bool
pub fn display_wide_enough(width: u16) -> bool
True iff the terminal is wide enough to display two panes
Sourcepub fn use_dual_tab(&self, width: u16) -> bool
pub fn use_dual_tab(&self, width: u16) -> bool
True if we display 2 tabs. It requires two conditions:
- The display should be wide enough, bigger than
crate::io::MIN_WIDTH_FOR_DUAL_PANE. - The
dual_tabsetting must be true.
pub fn set_dual(&mut self, dual: bool)
pub fn toggle_dual(&mut self)
pub fn toggle_metadata(&mut self)
pub fn set_preview(&mut self)
pub fn toggle_preview(&mut self)
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Session
impl RefUnwindSafe for Session
impl Send for Session
impl Sync for Session
impl Unpin for Session
impl UnwindSafe for Session
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
Mutably borrows from an owned value. Read more
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>
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>
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)
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)
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
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>
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 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>
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