Skip to main content

MultiStepMockLlmPort

Struct MultiStepMockLlmPort 

Source
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

Source

pub fn new(responses: Vec<String>) -> MultiStepMockLlmPort

Create a new multi-step mock with the given response sequence.

Source

pub fn call_count(&self) -> usize

Return the number of times LlmPort::generate has been called.

Trait Implementations§

Source§

impl Debug for MultiStepMockLlmPort

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

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,

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,

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,

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,

Get a list of available models from this provider Read more
Source§

fn get_provider_name(&self) -> &'static str

Get the provider name Read more
Source§

fn get_capabilities(&self) -> ProviderCapabilities

Get the capabilities of this provider Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,