Requesting help with a lifetime problem (Using redb)

Thanks a lot for taking the time to write that clear explanation.

Can I ask one more question?

When I call query function

const TABLE: redb::TableDefinition<&str, &[u8]> = redb::TableDefinition::new("table");
pub(crate) const SETTINGS_KEY: &str = "settings";

pub(crate) async fn get() -> impl axum::response::IntoResponse {
    let r: Result<Option<Settings>> = db::query(TABLE, SETTINGS_KEY);
}

Compiler said:

error: implementation of `Borrow` is not general enough
  --> src\man\settings.rs:34:39
   |
34 |     let r: Result<Option<Settings>> = db::query(TABLE, SETTINGS_KEY);
   |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ implementation of `Borrow` is not general enough
   |
   = note: `&'2 str` must implement `Borrow<&'1 str>`, for any lifetime `'1`...
   = note: ...but it actually implements `Borrow<&'2 str>`, for some specific lifetime `'2`


I guess this is also a lifetime problem since SETTINGS_KEY has 'static lifetime, but query function needs 'a lifetime