Rust
Rust の Web フレームワークのRocketで作っている Web アプリで、tracing を使った詳細なエラーログ出力とエラーハンドリングの改善をしてみました。 前提 クリーンアーキテクチャっぽい構成を想定しています。controller, use_case, repository があります…
先日この投稿を書いたのですが、Rocket と sqlx でクリーンアーキテクチャっぽくしたものの、トランザクションをうまく使えなくて、都度 truncate を実行する直列的なテストをしていましたが、超簡単にトランザクションが使えることにやっと気づいたので、並…
Rust の Rocket と sqlx でクリーンアーキテクチャっぽくして、ディレクトリとか モジュールもなるべくいい感じに分けつつ、テストもしやすい・モックも作りやすい状態を、頑張って作ってみました。 以前 Axum でも同じようなことをやりました 以前 Axum で…
設定ファイルと環境変数 ここに書いてありますが、Rocket は Rocket.toml というファイルで設定を管理できます。また、環境変数もROCKET_xxxxという形式にすることで、Rocket.toml の値を上書きすることができます。そして、環境変数にROCKET_PROFILE=devな…
Rocketで controller のハンドラ関数でリクエストを受けて、use_case や repository で詳細の処理を実行するようになっています。use_case, repository で発生したエラー毎にレスポンス時のステータスコードを決めないといけないです。 ですので、use_case, …
Rust のRocketのリクエスト関連のメモです。ここを読みながら確認してみたこと等をメモします。 リクエスト パラメータの型 下記のようにage:u8となっている場合、/bob/32/trueとかだと OK。でも/bob/a/trueとか u8 型を求めているのに文字列とかだと 404 エ…
下記のような超シンプルな Rocket アプリを render にデプロイしてみます。 #[macro_use] extern crate rocket; #[get("/")] fn index() -> &'static str { "Hello, world!" } #[launch] fn rocket() -> _ { rocket::build().mount("/", routes![index]) } …
SvelteKitの prerender モードで、このブログサイトを作りました。ブログ記事は md ファイルをビルド時に html ファイル化しています。 Markdown を html に変換するのは、MDsveXを使いました。トップページに Github の各種情報(コミット数、獲得スター数…
Solidity のドキュメントのここに書いてある内容について、Rust も同じ仕様なのか?などを試してみました。 目次 マイナスの int を uint に変換する let a:i8 = -3; println!("a:{}", a as u8); 結果 a:253 Solidity と同じ結果でした。256 を足すと答えが…
フォーマットに使うコマンド rustfmtです。cargo fmt で使えるか確認してください。もし使えない場合はインストール・設定が必要だと思いますので、下記等を確認してください。 GitHub - rust-lang/rustfmt: Format Rust code 利用してるvscodeの拡張 下記を…