I want to pass a pre-compiled json schema to actix web, but the compiler complains that the borrowed Value used to create the JSONSchema does not live long enough. Is there a way to workaround this?
Example:
use jsonschema::JSONSchema;
use serde_json::from_str;
use actix_web::{web, get, App, HttpServer, HttpResponse, Responder};
#[actix_web::main]
async fn main() -> std::io::Result<()> {
    HttpServer::new(|| {
        let schema_str = include_str!("schema.json");
        let schema_value = from_str(schema_str).unwrap();
        let schema_compiled = JSONSchema::compile(&schema_value).unwrap();
        App::new()
            .data(schema_compiled) // fixme: compiles if commented out
            .service(index)
    })
    .bind("0.0.0.0:8080")?
    .run()
    .await
}
#[get("/")]
async fn index<'a>(_schema: web::Data<JSONSchema<'a>>) -> impl Responder {
    HttpResponse::Ok().finish() // todo: use schema for something
}
Error from rustc:
error[E0597]: `schema_value` does not live long enough
  --> src/main.rs:10:51
   |
10 |         let schema_compiled = JSONSchema::compile(&schema_value).unwrap();
   |                               --------------------^^^^^^^^^^^^^-
   |                               |                   |
   |                               |                   borrowed value does not live long enough
   |                               argument requires that `schema_value` is borrowed for `'static`
...
14 |     })
   |     - `schema_value` dropped here while still borrowed
I'm new to rust, so apologise if this is a generic rust question in disguise (and will happily modify the question with a smaller reproducible once my understanding is improved).
