pub struct MemoryExecutionJournal { /* private fields */ }Expand description
Deterministic bounded journal for local development and contract tests.
Implementations§
Trait Implementations§
Source§impl ExecutionJournal for MemoryExecutionJournal
impl ExecutionJournal for MemoryExecutionJournal
fn reserve<'life0, 'async_trait>(
&'life0 self,
execution: NewJournalExecution,
) -> Pin<Box<dyn Future<Output = Result<JournalReservation, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn get<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
) -> Pin<Box<dyn Future<Output = Result<JournalExecution, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn claim<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
worker_id: &'life2 str,
now_ms: i64,
expires_at_ms: i64,
) -> Pin<Box<dyn Future<Output = Result<JournalExecution, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn recoverable<'life0, 'async_trait>(
&'life0 self,
now_ms: i64,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<JournalExecution>, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn transition<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
expected: &'life2 [ExecutionState],
next: ExecutionState,
) -> Pin<Box<dyn Future<Output = Result<JournalExecution, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn attach_delegation<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
delegation: JournalDelegation,
) -> Pin<Box<dyn Future<Output = Result<JournalExecution, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn attach_delegation<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
delegation: JournalDelegation,
) -> Pin<Box<dyn Future<Output = Result<JournalExecution, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Persist the opaque delegation reference before any Infra-backed Kernel
operation. Replays with the same lease are idempotent.
Source§fn complete_delegation_cleanup<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
lease_ref: &'life2 DelegationLeaseRef,
) -> Pin<Box<dyn Future<Output = Result<JournalExecution, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn complete_delegation_cleanup<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
lease_ref: &'life2 DelegationLeaseRef,
) -> Pin<Box<dyn Future<Output = Result<JournalExecution, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Mark terminal delegation cleanup after broker revoke succeeds.
fn finish<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
expected: &'life2 [ExecutionState],
next: ExecutionState,
outcome: Option<ExecutionOutcome>,
failure: Option<ExecutionFailure>,
) -> Pin<Box<dyn Future<Output = Result<JournalExecution, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Source§fn transition_with_event<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
expected: &'life2 [ExecutionState],
next: ExecutionState,
outcome: Option<ExecutionOutcome>,
failure: Option<ExecutionFailure>,
payload: EventPayload,
) -> Pin<Box<dyn Future<Output = Result<JournalMutation, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn transition_with_event<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
expected: &'life2 [ExecutionState],
next: ExecutionState,
outcome: Option<ExecutionOutcome>,
failure: Option<ExecutionFailure>,
payload: EventPayload,
) -> Pin<Box<dyn Future<Output = Result<JournalMutation, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Atomically commit a state transition and its corresponding event so
replay and SSE cannot observe one without the other. Terminal outcome
and failure payloads are supplied only for terminal transitions.
fn append_event<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
payload: EventPayload,
) -> Pin<Box<dyn Future<Output = Result<ExecutionEvent, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Source§fn begin_interaction<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
request_id: &'life2 str,
prompt: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<JournalMutation, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
fn begin_interaction<'life0, 'life1, 'life2, 'life3, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
request_id: &'life2 str,
prompt: &'life3 str,
) -> Pin<Box<dyn Future<Output = Result<JournalMutation, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
Atomically publish a pending interaction and its committed event.
Source§fn commit_interaction_input<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
operation_id: &'life2 OperationId,
request_id: &'life3 str,
response_text: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<JournalMutation, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
fn commit_interaction_input<'life0, 'life1, 'life2, 'life3, 'life4, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
operation_id: &'life2 OperationId,
request_id: &'life3 str,
response_text: &'life4 str,
) -> Pin<Box<dyn Future<Output = Result<JournalMutation, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,
'life4: 'async_trait,
Atomically deduplicate input, transition back to running, and commit
the interaction-received event before any in-process waiter is woken.
Source§fn complete_interaction<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
request_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<JournalExecution, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn complete_interaction<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
request_id: &'life2 str,
) -> Pin<Box<dyn Future<Output = Result<JournalExecution, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Mark a journal-committed response as consumed by the running tool.
fn events<'life0, 'life1, 'async_trait>(
&'life0 self,
id: &'life1 ExecutionId,
after: Option<u64>,
limit: usize,
) -> Pin<Box<dyn Future<Output = Result<Vec<ExecutionEvent>, JournalError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Auto Trait Implementations§
impl !Freeze for MemoryExecutionJournal
impl !RefUnwindSafe for MemoryExecutionJournal
impl !UnwindSafe for MemoryExecutionJournal
impl Send for MemoryExecutionJournal
impl Sync for MemoryExecutionJournal
impl Unpin for MemoryExecutionJournal
impl UnsafeUnpin for MemoryExecutionJournal
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