viceroy-lib 0.17.0

Viceroy implementation details.
Documentation
use crate::component::bindings::fastly::compute::{
    http_body, http_req, http_resp, image_optimizer, types,
};
use crate::linking::ComponentCtx;
use wasmtime::component::Resource;

impl image_optimizer::Host for ComponentCtx {
    fn transform_image_optimizer_request(
        &mut self,
        origin_image_request: Resource<http_req::Request>,
        origin_image_request_body: Option<Resource<http_body::Body>>,
        origin_image_request_backend: Resource<String>,
        io_transform_config: image_optimizer::ImageOptimizerTransformOptions,
    ) -> Result<http_resp::ResponseWithBody, types::Error> {
        let origin_image_request_backend =
            self.wasi_table.get(&origin_image_request_backend).unwrap();
        crate::component::image_optimizer::transform_image_optimizer_request(
            &mut self.session,
            origin_image_request,
            origin_image_request_body,
            origin_image_request_backend,
            io_transform_config,
        )
    }
}

impl image_optimizer::HostExtraImageOptimizerTransformOptions for ComponentCtx {
    fn drop(
        &mut self,
        _options: Resource<image_optimizer::ExtraImageOptimizerTransformOptions>,
    ) -> wasmtime::Result<()> {
        Ok(())
    }
}