pub struct SqliteStorage { /* private fields */ }
Expand description
SqliteStorage
provides an interface for interacting with a SQLite database to store and retrieve application data,
primarily [Command
] and [VariableValue
] entities
Implementations§
Source§impl SqliteStorage
impl SqliteStorage
Sourcepub async fn setup_workspace_storage(&self) -> Result<()>
pub async fn setup_workspace_storage(&self) -> Result<()>
Creates temporary tables for workspace-specific commands for the current session by reflecting the schema of the
main command
table.
Sourcepub async fn is_empty(&self) -> Result<bool>
pub async fn is_empty(&self) -> Result<bool>
Determines if the storage is empty, i.e., if there are no commands in the database
Retrieves all tags from the database along with their usage statistics and if it’s an exact match for the prefix
Sourcepub async fn find_commands(
&self,
filter: SearchCommandsFilter,
working_path: impl Into<String>,
tuning: &SearchCommandTuning,
) -> Result<(Vec<Command>, bool), SearchError>
pub async fn find_commands( &self, filter: SearchCommandsFilter, working_path: impl Into<String>, tuning: &SearchCommandTuning, ) -> Result<(Vec<Command>, bool), SearchError>
Finds and retrieves commands from the database.
When a search term is present, if there’s a command which alias exactly match the term, that’ll be the only one returned.
Sourcepub async fn import_commands(
&self,
commands: impl Stream<Item = Result<Command>> + Send + 'static,
filter: Option<Regex>,
overwrite: bool,
workspace: bool,
) -> Result<(u64, u64)>
pub async fn import_commands( &self, commands: impl Stream<Item = Result<Command>> + Send + 'static, filter: Option<Regex>, overwrite: bool, workspace: bool, ) -> Result<(u64, u64)>
Imports a collection of commands into the database.
This function allows for bulk insertion or updating of commands from a stream.
The behavior for existing commands depends on the overwrite
flag.
Returns the number of new commands inserted and skipped/updated.
Sourcepub async fn export_user_commands(
&self,
filter: Option<Regex>,
) -> impl Stream<Item = Result<Command>> + Send + 'static
pub async fn export_user_commands( &self, filter: Option<Regex>, ) -> impl Stream<Item = Result<Command>> + Send + 'static
Export user commands
Sourcepub async fn delete_tldr_commands(
&self,
category: Option<String>,
) -> Result<u64>
pub async fn delete_tldr_commands( &self, category: Option<String>, ) -> Result<u64>
Removes tldr commands
Sourcepub async fn insert_command(
&self,
command: Command,
) -> Result<Command, InsertError>
pub async fn insert_command( &self, command: Command, ) -> Result<Command, InsertError>
Inserts a new command into the database.
If a command with the same id
or cmd
already exists in the database, an error will be returned.
Sourcepub async fn update_command(
&self,
command: Command,
) -> Result<Command, UpdateError>
pub async fn update_command( &self, command: Command, ) -> Result<Command, UpdateError>
Updates an existing command in the database.
If the command to be updated does not exist, an error will be returned.
Sourcepub async fn increment_command_usage(
&self,
command_id: Uuid,
path: impl AsRef<str> + Send + 'static,
) -> Result<i32, UpdateError>
pub async fn increment_command_usage( &self, command_id: Uuid, path: impl AsRef<str> + Send + 'static, ) -> Result<i32, UpdateError>
Increments the usage of a command
Sourcepub async fn delete_command(&self, command_id: Uuid) -> Result<()>
pub async fn delete_command(&self, command_id: Uuid) -> Result<()>
Deletes an existing command from the database.
If the command to be deleted does not exist, an error will be returned.
Source§impl SqliteStorage
impl SqliteStorage
Sourcepub async fn find_variable_values(
&self,
root_cmd: impl AsRef<str>,
variable_name: impl AsRef<str>,
working_path: impl Into<String>,
context: &BTreeMap<String, String>,
tuning: &SearchVariableTuning,
) -> Result<Vec<VariableValue>>
pub async fn find_variable_values( &self, root_cmd: impl AsRef<str>, variable_name: impl AsRef<str>, working_path: impl Into<String>, context: &BTreeMap<String, String>, tuning: &SearchVariableTuning, ) -> Result<Vec<VariableValue>>
Finds variable values for a given root command, variable name and context.
The variable_name
input can be a single term or multiple terms delimited by |
.
The method searches for values matching any of these individual (flattened) terms, as well as the (flattened)
composite variable itself.
Results are returned for the original input variable, even if they don’t explicitly exists, ordered to prioritize overall relevance.
Sourcepub async fn insert_variable_value(
&self,
value: VariableValue,
) -> Result<VariableValue, InsertError>
pub async fn insert_variable_value( &self, value: VariableValue, ) -> Result<VariableValue, InsertError>
Inserts a new variable value into the database if it doesn’t already exist
Sourcepub async fn update_variable_value(
&self,
value: VariableValue,
) -> Result<VariableValue, UpdateError>
pub async fn update_variable_value( &self, value: VariableValue, ) -> Result<VariableValue, UpdateError>
Updates an existing variable value
Sourcepub async fn increment_variable_value_usage(
&self,
value_id: i32,
path: impl AsRef<str> + Send + 'static,
context: &BTreeMap<String, String>,
) -> Result<i32, UpdateError>
pub async fn increment_variable_value_usage( &self, value_id: i32, path: impl AsRef<str> + Send + 'static, context: &BTreeMap<String, String>, ) -> Result<i32, UpdateError>
Increments the usage of a variable value
Sourcepub async fn delete_variable_value(&self, value_id: i32) -> Result<()>
pub async fn delete_variable_value(&self, value_id: i32) -> Result<()>
Deletes an existing variable value from the database.
If the value to be deleted does not exist, an error will be returned.
Source§impl SqliteStorage
impl SqliteStorage
Source§impl SqliteStorage
impl SqliteStorage
Sourcepub async fn new(data_dir: impl AsRef<Path>) -> Result<Self>
pub async fn new(data_dir: impl AsRef<Path>) -> Result<Self>
Creates a new instance of SqliteStorage
using a persistent database file.
If INTELLI_STORAGE environment variable is set, it will use the specified path for the database file.
pub async fn query(&self, sql: String) -> Result<String>
Trait Implementations§
Source§impl Clone for SqliteStorage
impl Clone for SqliteStorage
Source§fn clone(&self) -> SqliteStorage
fn clone(&self) -> SqliteStorage
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl Freeze for SqliteStorage
impl RefUnwindSafe for SqliteStorage
impl Send for SqliteStorage
impl Sync for SqliteStorage
impl Unpin for SqliteStorage
impl UnwindSafe for SqliteStorage
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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 moreSource§impl<D> OwoColorize for D
impl<D> OwoColorize for D
Source§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
Source§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
Source§fn black(&self) -> FgColorDisplay<'_, Black, Self>
fn black(&self) -> FgColorDisplay<'_, Black, Self>
Source§fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
fn on_black(&self) -> BgColorDisplay<'_, Black, Self>
Source§fn red(&self) -> FgColorDisplay<'_, Red, Self>
fn red(&self) -> FgColorDisplay<'_, Red, Self>
Source§fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
fn on_red(&self) -> BgColorDisplay<'_, Red, Self>
Source§fn green(&self) -> FgColorDisplay<'_, Green, Self>
fn green(&self) -> FgColorDisplay<'_, Green, Self>
Source§fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
fn on_green(&self) -> BgColorDisplay<'_, Green, Self>
Source§fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
fn yellow(&self) -> FgColorDisplay<'_, Yellow, Self>
Source§fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
fn on_yellow(&self) -> BgColorDisplay<'_, Yellow, Self>
Source§fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
fn blue(&self) -> FgColorDisplay<'_, Blue, Self>
Source§fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
fn on_blue(&self) -> BgColorDisplay<'_, Blue, Self>
Source§fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
fn magenta(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
fn purple(&self) -> FgColorDisplay<'_, Magenta, Self>
Source§fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_purple(&self) -> BgColorDisplay<'_, Magenta, Self>
Source§fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
fn cyan(&self) -> FgColorDisplay<'_, Cyan, Self>
Source§fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
fn on_cyan(&self) -> BgColorDisplay<'_, Cyan, Self>
Source§fn white(&self) -> FgColorDisplay<'_, White, Self>
fn white(&self) -> FgColorDisplay<'_, White, Self>
Source§fn on_white(&self) -> BgColorDisplay<'_, White, Self>
fn on_white(&self) -> BgColorDisplay<'_, White, Self>
Source§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
Source§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
Source§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
Source§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
Source§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
Source§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
Source§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
Source§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
Source§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
Source§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
Source§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
Source§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
Source§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
Source§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
Source§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
Source§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
Source§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
Source§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
Source§fn bold(&self) -> BoldDisplay<'_, Self>
fn bold(&self) -> BoldDisplay<'_, Self>
Source§fn dimmed(&self) -> DimDisplay<'_, Self>
fn dimmed(&self) -> DimDisplay<'_, Self>
Source§fn italic(&self) -> ItalicDisplay<'_, Self>
fn italic(&self) -> ItalicDisplay<'_, Self>
Source§fn underline(&self) -> UnderlineDisplay<'_, Self>
fn underline(&self) -> UnderlineDisplay<'_, Self>
Source§fn blink(&self) -> BlinkDisplay<'_, Self>
fn blink(&self) -> BlinkDisplay<'_, Self>
Source§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
Source§fn reversed(&self) -> ReversedDisplay<'_, Self>
fn reversed(&self) -> ReversedDisplay<'_, Self>
Source§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
Source§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg
or
a color-specific method, such as OwoColorize::green
, Read moreSource§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg
or
a color-specific method, such as OwoColorize::on_yellow
, Read more