pub struct BookmarkStore { /* private fields */ }Expand description
A persisted, named-path bookmark registry.
Loaded from and saved to a bookmarks.toml file in the user’s Trail
data directory. Mutations are written immediately after every change.
Internally, bookmarks are a BTreeMap<String, PathBuf> so listing them
is always in alphabetical order.
Implementations§
Source§impl BookmarkStore
impl BookmarkStore
Sourcepub fn open(file_path: PathBuf) -> Result<Self, BookmarkError>
pub fn open(file_path: PathBuf) -> Result<Self, BookmarkError>
Opens the bookmark store from file_path, creating it if absent.
If the file does not exist, an empty store is returned (not an error).
§Errors
Returns BookmarkError::Read if the file exists but cannot be read,
or BookmarkError::Parse if the TOML is malformed.
Sourcepub fn add(&mut self, name: String, path: PathBuf) -> Result<(), BookmarkError>
pub fn add(&mut self, name: String, path: PathBuf) -> Result<(), BookmarkError>
Adds or replaces a bookmark named name pointing to path.
Persists the updated store immediately.
§Errors
Returns a BookmarkError if serialization or the write fails.
Sourcepub fn remove(&mut self, name: &str) -> Result<bool, BookmarkError>
pub fn remove(&mut self, name: &str) -> Result<bool, BookmarkError>
Removes the bookmark named name.
Returns true if a bookmark with that name existed and was removed.
Persists the updated store even if no entry was removed (idempotent).
§Errors
Returns a BookmarkError if serialization or the write fails.
Sourcepub fn get(&self, name: &str) -> Option<&Path>
pub fn get(&self, name: &str) -> Option<&Path>
Returns the absolute path for bookmark name, or None if it does
not exist.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for BookmarkStore
impl RefUnwindSafe for BookmarkStore
impl Send for BookmarkStore
impl Sync for BookmarkStore
impl Unpin for BookmarkStore
impl UnsafeUnpin for BookmarkStore
impl UnwindSafe for BookmarkStore
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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