Skip to main content

ImageModelMiddleware

Trait ImageModelMiddleware 

Source
pub trait ImageModelMiddleware:
    Send
    + Sync
    + 'static {
    // Provided methods
    fn transform_params<'a>(
        &'a self,
        options: ImageOptions,
        _ctx: ImageMiddlewareContext<'a>,
    ) -> BoxFuture<'a, Result<ImageOptions, ProviderError>> { ... }
    fn wrap_generate<'a>(
        &'a self,
        options: ImageOptions,
        next: ImageGenerateNext<'a>,
        _ctx: ImageMiddlewareContext<'a>,
    ) -> BoxFuture<'a, Result<ImageResult, ProviderError>> { ... }
    fn override_provider(
        &self,
        _model: &dyn DynImageModel,
    ) -> Option<ProviderId> { ... }
    fn override_model_id(&self, _model: &dyn DynImageModel) -> Option<ModelId> { ... }
    fn max_images_per_call(&self, model: &dyn DynImageModel) -> Option<usize> { ... }
}
Expand description

Intercepts image model calls. Every method has a pass-through default.

max_images_per_call receives the wrapped model and returns the value the wrapper reports; its default forwards the inner model’s value.

Provided Methods§

Source

fn transform_params<'a>( &'a self, options: ImageOptions, _ctx: ImageMiddlewareContext<'a>, ) -> BoxFuture<'a, Result<ImageOptions, ProviderError>>

Rewrites the image options before the call.

Source

fn wrap_generate<'a>( &'a self, options: ImageOptions, next: ImageGenerateNext<'a>, _ctx: ImageMiddlewareContext<'a>, ) -> BoxFuture<'a, Result<ImageResult, ProviderError>>

Wraps do_generate.

Source

fn override_provider(&self, _model: &dyn DynImageModel) -> Option<ProviderId>

Overrides the provider id reported by the wrapped model.

Source

fn override_model_id(&self, _model: &dyn DynImageModel) -> Option<ModelId>

Overrides the model id reported by the wrapped model.

Source

fn max_images_per_call(&self, model: &dyn DynImageModel) -> Option<usize>

The per-call image limit reported by the wrapper; defaults to the inner value.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§