pub struct SqliteSaver { /* private fields */ }Expand description
Async SQLite checkpoint saver using sqlx.
Uses a three-table schema (checkpoints, checkpoint_blobs,
checkpoint_writes) consistent with the Postgres implementation.
Implementations§
Source§impl SqliteSaver
impl SqliteSaver
Sourcepub fn new(pool: SqlitePool) -> Self
pub fn new(pool: SqlitePool) -> Self
Create a new SqliteSaver from an existing connection pool.
Sourcepub fn with_serde(pool: SqlitePool, serde: Arc<dyn SerializerProtocol>) -> Self
pub fn with_serde(pool: SqlitePool, serde: Arc<dyn SerializerProtocol>) -> Self
Create a new SqliteSaver with a custom serializer.
Sourcepub async fn from_conn_string(
conn_string: &str,
) -> Result<Self, CheckpointError>
pub async fn from_conn_string( conn_string: &str, ) -> Result<Self, CheckpointError>
Create a SqliteSaver from a connection string.
Accepts standard sqlx URIs such as "sqlite::memory:" or
"sqlite:./checkpoints.db". The database file is created if
it does not exist, and WAL journal mode is enabled.
Sourcepub async fn setup(&self) -> Result<(), CheckpointError>
pub async fn setup(&self) -> Result<(), CheckpointError>
Run migrations to set up the checkpoint schema. Idempotent.
Sourcepub fn pool(&self) -> &SqlitePool
pub fn pool(&self) -> &SqlitePool
Get the underlying connection pool.
Sourcepub async fn alist(
&self,
config: Option<&RunnableConfig>,
filter: Option<&HashMap<String, JsonValue>>,
before: Option<&RunnableConfig>,
limit: Option<usize>,
) -> Result<Vec<CheckpointTuple>, CheckpointError>
pub async fn alist( &self, config: Option<&RunnableConfig>, filter: Option<&HashMap<String, JsonValue>>, before: Option<&RunnableConfig>, limit: Option<usize>, ) -> Result<Vec<CheckpointTuple>, CheckpointError>
Async list method.
Trait Implementations§
Source§impl BaseCheckpointSaver for SqliteSaver
impl BaseCheckpointSaver for SqliteSaver
Source§fn get_tuple(
&self,
config: &RunnableConfig,
) -> Result<Option<CheckpointTuple>, CheckpointError>
fn get_tuple( &self, config: &RunnableConfig, ) -> Result<Option<CheckpointTuple>, CheckpointError>
Get a checkpoint tuple by config.
Source§fn list(
&self,
config: Option<&RunnableConfig>,
filter: Option<&HashMap<String, JsonValue>>,
before: Option<&RunnableConfig>,
limit: Option<usize>,
) -> Result<Vec<CheckpointTuple>, CheckpointError>
fn list( &self, config: Option<&RunnableConfig>, filter: Option<&HashMap<String, JsonValue>>, before: Option<&RunnableConfig>, limit: Option<usize>, ) -> Result<Vec<CheckpointTuple>, CheckpointError>
List checkpoint tuples.
Source§fn put(
&self,
config: &RunnableConfig,
checkpoint: &Checkpoint,
metadata: &CheckpointMetadata,
new_versions: &ChannelVersions,
) -> Result<RunnableConfig, CheckpointError>
fn put( &self, config: &RunnableConfig, checkpoint: &Checkpoint, metadata: &CheckpointMetadata, new_versions: &ChannelVersions, ) -> Result<RunnableConfig, CheckpointError>
Store a checkpoint.
Source§fn put_writes(
&self,
config: &RunnableConfig,
writes: &[(String, String, JsonValue)],
task_id: &str,
task_path: &str,
) -> Result<(), CheckpointError>
fn put_writes( &self, config: &RunnableConfig, writes: &[(String, String, JsonValue)], task_id: &str, task_path: &str, ) -> Result<(), CheckpointError>
Store pending writes for a checkpoint.
Source§fn delete_thread(&self, thread_id: &str) -> Result<(), CheckpointError>
fn delete_thread(&self, thread_id: &str) -> Result<(), CheckpointError>
Delete all checkpoints for a thread.
fn aget_tuple<'life0, 'life1, 'async_trait>(
&'life0 self,
config: &'life1 RunnableConfig,
) -> Pin<Box<dyn Future<Output = Result<Option<CheckpointTuple>, CheckpointError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn aput<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
config: &'life1 RunnableConfig,
checkpoint: &'life2 Checkpoint,
metadata: &'life3 CheckpointMetadata,
new_versions: &'life4 ChannelVersions,
) -> Pin<Box<dyn Future<Output = Result<RunnableConfig, CheckpointError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn aput_writes<'life0, 'life1, 'async_trait>(
&'life0 self,
config: &'life1 RunnableConfig,
writes: Vec<(String, String, JsonValue)>,
task_id: String,
task_path: String,
) -> Pin<Box<dyn Future<Output = Result<(), CheckpointError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn adelete_thread<'life0, 'async_trait>(
&'life0 self,
thread_id: String,
) -> Pin<Box<dyn Future<Output = Result<(), CheckpointError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Auto Trait Implementations§
impl !RefUnwindSafe for SqliteSaver
impl !UnwindSafe for SqliteSaver
impl Freeze for SqliteSaver
impl Send for SqliteSaver
impl Sync for SqliteSaver
impl Unpin for SqliteSaver
impl UnsafeUnpin for SqliteSaver
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> 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