pub struct MultiStepMockLlmPort { /* private fields */ }Expand description
A mock adapter that returns different responses for successive calls.
Unlike MockLlmAdapter (which cycles), this adapter returns each response
exactly once and then panics if called more times than there are responses.
This is useful for tests that assert the exact sequence of LLM calls.
§Example
use paladin_llm::mock::MultiStepMockLlmPort;
let adapter = MultiStepMockLlmPort::new(vec![
"Step 1 response".to_string(),
"Step 2 response".to_string(),
]);Implementations§
Source§impl MultiStepMockLlmPort
impl MultiStepMockLlmPort
Sourcepub fn new(responses: Vec<String>) -> MultiStepMockLlmPort
pub fn new(responses: Vec<String>) -> MultiStepMockLlmPort
Create a new multi-step mock with the given response sequence.
Sourcepub fn call_count(&self) -> usize
pub fn call_count(&self) -> usize
Return the number of times LlmPort::generate has been called.
Trait Implementations§
Source§impl Debug for MultiStepMockLlmPort
impl Debug for MultiStepMockLlmPort
Source§impl LlmPort for MultiStepMockLlmPort
impl LlmPort for MultiStepMockLlmPort
Source§fn generate<'life0, 'async_trait>(
&'life0 self,
request: LlmRequest,
) -> Pin<Box<dyn Future<Output = Result<LlmResponse, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MultiStepMockLlmPort: 'async_trait,
fn generate<'life0, 'async_trait>(
&'life0 self,
request: LlmRequest,
) -> Pin<Box<dyn Future<Output = Result<LlmResponse, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MultiStepMockLlmPort: 'async_trait,
Generate a completion from the LLM Read more
Source§fn generate_stream<'life0, 'async_trait>(
&'life0 self,
request: LlmRequest,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn Stream<Item = Result<StreamingResponse, LlmError>> + Send>, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MultiStepMockLlmPort: 'async_trait,
fn generate_stream<'life0, 'async_trait>(
&'life0 self,
request: LlmRequest,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn Stream<Item = Result<StreamingResponse, LlmError>> + Send>, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MultiStepMockLlmPort: 'async_trait,
Generate a streaming completion from the LLM Read more
Source§fn validate_model<'life0, 'life1, 'async_trait>(
&'life0 self,
_model: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MultiStepMockLlmPort: 'async_trait,
fn validate_model<'life0, 'life1, 'async_trait>(
&'life0 self,
_model: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
'life1: 'async_trait,
MultiStepMockLlmPort: 'async_trait,
Validate if a model is available from this provider Read more
Source§fn get_available_models<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MultiStepMockLlmPort: 'async_trait,
fn get_available_models<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = Result<Vec<String>, LlmError>> + Send + 'async_trait>>where
'life0: 'async_trait,
MultiStepMockLlmPort: 'async_trait,
Get a list of available models from this provider Read more
Source§fn get_provider_name(&self) -> &'static str
fn get_provider_name(&self) -> &'static str
Get the provider name Read more
Source§fn get_capabilities(&self) -> ProviderCapabilities
fn get_capabilities(&self) -> ProviderCapabilities
Get the capabilities of this provider Read more
Auto Trait Implementations§
impl Freeze for MultiStepMockLlmPort
impl RefUnwindSafe for MultiStepMockLlmPort
impl Send for MultiStepMockLlmPort
impl Sync for MultiStepMockLlmPort
impl Unpin for MultiStepMockLlmPort
impl UnsafeUnpin for MultiStepMockLlmPort
impl UnwindSafe for MultiStepMockLlmPort
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