pub struct PostgresCheckpointer { /* private fields */ }
Expand description
PostgreSQL-backed checkpointer with connection pooling.
§Examples
use agents_persistence::PostgresCheckpointer;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
// Basic usage
let checkpointer = PostgresCheckpointer::new(
"postgresql://user:pass@localhost/agents"
).await?;
// With custom pool configuration
let checkpointer = PostgresCheckpointer::builder()
.url("postgresql://user:pass@localhost/agents")
.table_name("my_checkpoints")
.max_connections(20)
.build()
.await?;
Ok(())
}
Implementations§
Source§impl PostgresCheckpointer
impl PostgresCheckpointer
Sourcepub async fn new(database_url: &str) -> Result<Self>
pub async fn new(database_url: &str) -> Result<Self>
Create a new PostgreSQL checkpointer with default settings.
This will automatically create the checkpoints table if it doesn’t exist.
§Arguments
database_url
- PostgreSQL connection string
Sourcepub fn builder() -> PostgresCheckpointerBuilder
pub fn builder() -> PostgresCheckpointerBuilder
Create a builder for configuring the PostgreSQL checkpointer.
Trait Implementations§
Source§impl Checkpointer for PostgresCheckpointer
impl Checkpointer for PostgresCheckpointer
Source§fn save_state<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
thread_id: &'life1 ThreadId,
state: &'life2 AgentStateSnapshot,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn save_state<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
thread_id: &'life1 ThreadId,
state: &'life2 AgentStateSnapshot,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Save the current agent state for a given thread.
Source§fn load_state<'life0, 'life1, 'async_trait>(
&'life0 self,
thread_id: &'life1 ThreadId,
) -> Pin<Box<dyn Future<Output = Result<Option<AgentStateSnapshot>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn load_state<'life0, 'life1, 'async_trait>(
&'life0 self,
thread_id: &'life1 ThreadId,
) -> Pin<Box<dyn Future<Output = Result<Option<AgentStateSnapshot>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Load the last saved state for a given thread.
Returns None if no state exists for this thread.
Source§impl Clone for PostgresCheckpointer
impl Clone for PostgresCheckpointer
Source§fn clone(&self) -> PostgresCheckpointer
fn clone(&self) -> PostgresCheckpointer
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for PostgresCheckpointer
impl !RefUnwindSafe for PostgresCheckpointer
impl Send for PostgresCheckpointer
impl Sync for PostgresCheckpointer
impl Unpin for PostgresCheckpointer
impl !UnwindSafe for PostgresCheckpointer
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> 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>
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