Open5

書籍のエラー対応記録

matchamatcha

『実践Rustプログラミング入門』のバージョン変更に伴うエラー対応履歴
https://www.shuwasystem.co.jp/book/9784798061702.html
Rustの勉強のために『実践Rustプログラミング入門』に倣ってコードを模写していたが、書籍と異なるバージョンを採用していたので、いくつかエラーが出てしまった。
本家のgithubでも対応されていなかったので、メモとして残す。

matchamatcha

以下、使用バージョン

[package]
name = "todo"
version = "0.1.0"
edition = "2021"

[dependencies]
actix-rt = "2.9.0"
actix-web = "4.4.0"
askama = "0.12.0"
thiserror = "1.0.47"
rusqlite = {version = "0.29", features = ["bundled"]}
r2d2 = "0.8.10"
r2d2_sqlite = "0.22.0"
env_logger = "0.10.0"
serde = {version = "1.0", features = ["derive"]}

matchamatcha

§5-3、5-4

変更前

    HttpServer::new(move || {
        App::new()
            .service(index)
            .service(add_todo)
            .service(delete_todo)
            .data(pool.clone())
    })
    .bind("0.0.0.0:8080")?
    .run()
    .await?;
    Ok(()) 

変更後

    // バージョン変更に伴いdata → app_dataに変更
    // data(pool.clone()) → .app_data(web::Data::new(pool.clone()))
    HttpServer::new(move || 
        App::new()
        .app_data(web::Data::new(pool.clone()))
        .service(index)
        )
        .bind("0.0.0.0:8080")?
        .run()
        .await?;
    Ok(())