Проблема здесь в том, что lazy_static
создает тип оболочки, который ссылается на ваши данные, а hyper
не знает, как с этим обращаться. Вы можете использовать file_data.clone()
, чтобы клонировать данные, на которые ссылаются, и построить из них тело, но в этом случае на самом деле есть более простой метод. Поскольку ваша строка имеет фиксированное значение и Body
реализует From<&'static str>
, вам вообще не нужны выделенные в куче String
или lazy_static
: вы можете использовать следующий код, который просто использует фрагмент постоянной строки, который можно использовать напрямую.
const FILE_DATA: &str = "test";
#[tokio::main]
async fn main() {
// code omitted
let login = warp::path("login").map(move || warp::reply::html(FILE_DATA));
// code omitted
}