Struct reedline::FileBackedHistory
source · [−]pub struct FileBackedHistory { /* private fields */ }
Expand description
Stateful history that allows up/down-arrow browsing with an internal cursor.
Can optionally be associated with a newline separated history file using the FileBackedHistory::with_file()
constructor.
Similar to bash’s behavior without HISTTIMEFORMAT.
(See https://www.gnu.org/software/bash/manual/html_node/Bash-History-Facilities.html)
If the history is associated to a file all new changes within a given history capacity will be written to disk when History is dropped.
Implementations
sourceimpl FileBackedHistory
impl FileBackedHistory
sourcepub fn new(capacity: usize) -> Self
pub fn new(capacity: usize) -> Self
Creates a new in-memory history that remembers n <= capacity
elements
Panics
If capacity == usize::MAX
sourcepub fn with_file(capacity: usize, file: PathBuf) -> Result<Self>
pub fn with_file(capacity: usize, file: PathBuf) -> Result<Self>
Creates a new history with an associated history file.
History file format: commands separated by new lines. If file exists file will be read otherwise empty file will be created.
Side effects: creates all nested directories to the file
Trait Implementations
sourceimpl Debug for FileBackedHistory
impl Debug for FileBackedHistory
sourceimpl Default for FileBackedHistory
impl Default for FileBackedHistory
sourcefn default() -> Self
fn default() -> Self
Creates an in-memory History
with a maximal capacity of HISTORY_SIZE
.
To create a History
that is synchronized with a file use FileBackedHistory::with_file()
sourceimpl Drop for FileBackedHistory
impl Drop for FileBackedHistory
sourcefn drop(&mut self)
fn drop(&mut self)
On drop the content of the History
will be written to the file if specified via FileBackedHistory::with_file()
.
sourceimpl History for FileBackedHistory
impl History for FileBackedHistory
sourcefn save(&mut self, h: HistoryItem) -> Result<HistoryItem, ReedlineError>
fn save(&mut self, h: HistoryItem) -> Result<HistoryItem, ReedlineError>
only saves a value if it’s different than the last value
sourcefn sync(&mut self) -> Result<()>
fn sync(&mut self) -> Result<()>
Writes unwritten history contents to disk.
If file would exceed capacity
truncates the oldest entries.
sourcefn load(&self, id: HistoryItemId) -> Result<HistoryItem, ReedlineError>
fn load(&self, id: HistoryItemId) -> Result<HistoryItem, ReedlineError>
load a history item by its id
sourcefn count(&self, query: SearchQuery) -> Result<i64, ReedlineError>
fn count(&self, query: SearchQuery) -> Result<i64, ReedlineError>
count the results of a query
sourcefn search(&self, query: SearchQuery) -> Result<Vec<HistoryItem>, ReedlineError>
fn search(&self, query: SearchQuery) -> Result<Vec<HistoryItem>, ReedlineError>
return the results of a query
sourcefn update(
&mut self,
_id: HistoryItemId,
_updater: &dyn Fn(HistoryItem) -> HistoryItem
) -> Result<(), ReedlineError>
fn update(
&mut self,
_id: HistoryItemId,
_updater: &dyn Fn(HistoryItem) -> HistoryItem
) -> Result<(), ReedlineError>
update an item atomically
sourcefn delete(&mut self, _h: HistoryItemId) -> Result<(), ReedlineError>
fn delete(&mut self, _h: HistoryItemId) -> Result<(), ReedlineError>
remove an item from this history
sourcefn next_session_id(&mut self) -> Result<HistorySessionId, ReedlineError>
fn next_session_id(&mut self) -> Result<HistorySessionId, ReedlineError>
retrieves the next unused session id
Auto Trait Implementations
impl RefUnwindSafe for FileBackedHistory
impl Send for FileBackedHistory
impl Sync for FileBackedHistory
impl Unpin for FileBackedHistory
impl UnwindSafe for FileBackedHistory
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more