pub struct LibsqlTraceStorage { /* private fields */ }Expand description
libsql-based trace storage.
Implementations§
Source§impl LibsqlTraceStorage
impl LibsqlTraceStorage
Sourcepub async fn new(
config: StorageConfig,
) -> Result<LibsqlTraceStorage, TracingError>
pub async fn new( config: StorageConfig, ) -> Result<LibsqlTraceStorage, TracingError>
Create storage from a configuration.
Sourcepub async fn new_memory() -> Result<LibsqlTraceStorage, TracingError>
pub async fn new_memory() -> Result<LibsqlTraceStorage, TracingError>
Create an in-memory storage.
Sourcepub async fn new_file(path: &str) -> Result<LibsqlTraceStorage, TracingError>
pub async fn new_file(path: &str) -> Result<LibsqlTraceStorage, TracingError>
Create a file-based storage.
Trait Implementations§
Source§impl TraceStorage for LibsqlTraceStorage
impl TraceStorage for LibsqlTraceStorage
Source§fn initialize<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
LibsqlTraceStorage: 'async_trait,
fn initialize<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
LibsqlTraceStorage: 'async_trait,
Initialize the storage backend (create tables, etc.).
Source§fn close<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
LibsqlTraceStorage: 'async_trait,
fn close<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<(), TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
LibsqlTraceStorage: 'async_trait,
Close the storage connection.
Source§fn ensure_session<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
created_at: DateTime<Utc>,
metadata: &'life2 Value,
) -> Pin<Box<dyn Future<Output = Result<(), TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LibsqlTraceStorage: 'async_trait,
fn ensure_session<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
created_at: DateTime<Utc>,
metadata: &'life2 Value,
) -> Pin<Box<dyn Future<Output = Result<(), TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LibsqlTraceStorage: 'async_trait,
Ensure a session exists (create if not present). Read more
Source§fn get_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<SessionTrace>, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LibsqlTraceStorage: 'async_trait,
fn get_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Option<SessionTrace>, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LibsqlTraceStorage: 'async_trait,
Get a session trace by ID.
Source§fn delete_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LibsqlTraceStorage: 'async_trait,
fn delete_session<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LibsqlTraceStorage: 'async_trait,
Delete a session and all related data.
Source§fn ensure_timestep<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
step: &'life2 SessionTimeStep,
) -> Pin<Box<dyn Future<Output = Result<i64, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LibsqlTraceStorage: 'async_trait,
fn ensure_timestep<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
step: &'life2 SessionTimeStep,
) -> Pin<Box<dyn Future<Output = Result<i64, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LibsqlTraceStorage: 'async_trait,
Ensure a timestep exists and return its database ID. Read more
Source§fn update_timestep<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
step_id: &'life2 str,
completed_at: Option<DateTime<Utc>>,
) -> Pin<Box<dyn Future<Output = Result<(), TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LibsqlTraceStorage: 'async_trait,
fn update_timestep<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
step_id: &'life2 str,
completed_at: Option<DateTime<Utc>>,
) -> Pin<Box<dyn Future<Output = Result<(), TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LibsqlTraceStorage: 'async_trait,
Update a timestep (e.g., mark as completed).
Source§fn insert_event<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
timestep_db_id: Option<i64>,
event: &'life2 TracingEvent,
) -> Pin<Box<dyn Future<Output = Result<i64, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LibsqlTraceStorage: 'async_trait,
fn insert_event<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
timestep_db_id: Option<i64>,
event: &'life2 TracingEvent,
) -> Pin<Box<dyn Future<Output = Result<i64, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LibsqlTraceStorage: 'async_trait,
Insert an event and return its database ID.
Source§fn insert_message<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
timestep_db_id: Option<i64>,
msg: &'life2 MarkovBlanketMessage,
) -> Pin<Box<dyn Future<Output = Result<i64, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LibsqlTraceStorage: 'async_trait,
fn insert_message<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
timestep_db_id: Option<i64>,
msg: &'life2 MarkovBlanketMessage,
) -> Pin<Box<dyn Future<Output = Result<i64, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LibsqlTraceStorage: 'async_trait,
Insert a message and return its database ID.
Source§fn insert_outcome_reward<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
reward: &'life2 OutcomeReward,
) -> Pin<Box<dyn Future<Output = Result<i64, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LibsqlTraceStorage: 'async_trait,
fn insert_outcome_reward<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
reward: &'life2 OutcomeReward,
) -> Pin<Box<dyn Future<Output = Result<i64, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LibsqlTraceStorage: 'async_trait,
Insert an outcome (session-level) reward.
Source§fn insert_event_reward<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
event_id: i64,
message_id: Option<i64>,
turn_number: Option<i32>,
reward: &'life2 EventReward,
) -> Pin<Box<dyn Future<Output = Result<i64, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LibsqlTraceStorage: 'async_trait,
fn insert_event_reward<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
event_id: i64,
message_id: Option<i64>,
turn_number: Option<i32>,
reward: &'life2 EventReward,
) -> Pin<Box<dyn Future<Output = Result<i64, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
LibsqlTraceStorage: 'async_trait,
Insert an event-level reward.
Source§fn query<'life0, 'life1, 'async_trait>(
&'life0 self,
sql: &'life1 str,
params: QueryParams,
) -> Pin<Box<dyn Future<Output = Result<Vec<Value>, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LibsqlTraceStorage: 'async_trait,
fn query<'life0, 'life1, 'async_trait>(
&'life0 self,
sql: &'life1 str,
params: QueryParams,
) -> Pin<Box<dyn Future<Output = Result<Vec<Value>, TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LibsqlTraceStorage: 'async_trait,
Execute a raw SQL query and return results as JSON values.
Source§fn update_session_counts<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LibsqlTraceStorage: 'async_trait,
fn update_session_counts<'life0, 'life1, 'async_trait>(
&'life0 self,
session_id: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), TracingError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
LibsqlTraceStorage: 'async_trait,
Update session counts (num_timesteps, num_events, num_messages).
Auto Trait Implementations§
impl !Freeze for LibsqlTraceStorage
impl !RefUnwindSafe for LibsqlTraceStorage
impl Send for LibsqlTraceStorage
impl Sync for LibsqlTraceStorage
impl Unpin for LibsqlTraceStorage
impl !UnwindSafe for LibsqlTraceStorage
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request