pub struct BookmarkStore {
bookmarks: Vec<Bookmark>,
}Expand description
Persisted list of bookmarks.
All mutations call save_to synchronously (blocking I/O) because they
happen inside a RwLock write guard already held by the command. The
bookmarks file is small (KBs at most), so blocking is acceptable.
Fields§
§bookmarks: Vec<Bookmark>Implementations§
Source§impl BookmarkStore
impl BookmarkStore
Sourcepub fn load(path: &Path) -> Result<Self, AppError>
pub fn load(path: &Path) -> Result<Self, AppError>
Load from path. Returns an empty store if the file does not exist.
Sourcepub fn add(
&mut self,
input: BookmarkInput,
path: &Path,
) -> Result<Bookmark, AppError>
pub fn add( &mut self, input: BookmarkInput, path: &Path, ) -> Result<Bookmark, AppError>
Add a new bookmark and persist. Returns the created Bookmark.
Trait Implementations§
Source§impl Debug for BookmarkStore
impl Debug for BookmarkStore
Source§impl Default for BookmarkStore
impl Default for BookmarkStore
Source§fn default() -> BookmarkStore
fn default() -> BookmarkStore
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for BookmarkStore
impl<'de> Deserialize<'de> for BookmarkStore
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
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
Mutably borrows from an owned value. Read more
§impl<'de, D, R> CommandArg<'de, R> for Dwhere
D: Deserialize<'de>,
R: Runtime,
impl<'de, D, R> CommandArg<'de, R> for Dwhere
D: Deserialize<'de>,
R: Runtime,
§fn from_command(command: CommandItem<'de, R>) -> Result<D, InvokeError>
fn from_command(command: CommandItem<'de, R>) -> Result<D, InvokeError>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 moreCreates a shared type from an unshared type.
§impl<T> NoneValue for Twhere
T: Default,
impl<T> NoneValue for Twhere
T: Default,
type NoneType = T
§fn null_value() -> T
fn null_value() -> T
The none-equivalent value.