Rustでクレートを混ぜ込む話

RustとTauriでGUI付きDockerのステータスを表示したりするアプリを作ってみてる件、ちまちまと検証しながら進めているのですが、 main.rs が膨らんでくるとやっぱり「あぁDocker関連のコードを分離したい」となってきます。 そういう時にどうすればいいのか、ちょっとやってみてました。キットもっと楽な方法があるはずなのですが、今の私の知見です。 単純に切り出す 切り出す mod 指示でインポートする 例えば元コードがこんな感じ。 1 2 3 4 5 6 7 fn hoge() -> String { "hogehoge".to_string() } fn main() { println!("{}", hoge()); } ここから hoge() を切り出したければ、まずは単純に切り出してみます。 hoge.rsを作成してお引っ越し 1 2 3 4 // hoge.rs fn hoge() -> String { "hogehoge".to_string() } これをmain.rsから読み込ませてみるのは、 mod キーワードでファイル名を渡してモジュールとして認識させることができます。 1 2 3 4 5 mod hoge; // hoge.rsを取り込む(モジュールとして) fn main() { println!("{}", hoge::hoge()); } でもこれはエラーになります。 ❯ cargo check Checking libkiridashi v0....

<span title='2023-04-14 05:53:05 +0900 +0900'>April 14, 2023</span>

Tauriで実用?アプリを試してみてます(不定期ネタ)

授業のVMをVirtualBoxからDockerベースに変更したのですが、学生にとって本当にVM(的なもの)が動いているのかというのが不安になってしまうこともあるかと思います。 本当はdocker系のコマンドを教えたいところですが、それを話す学年ではない(そういう主戦場の学年はもうひとつ上)ので、稼働状態と最低限の制御のできるUIができないかなと思っていたら… あるではありませんか? Tauri ですよ。 TypeScriptとReact/Next.jsでつくる実践Webアプリケーション開発posted with ヨメレバ手島 拓也/吉田 健人 技術評論社 2022年07月25日頃 楽天ブックスAmazonKindle Build smaller, faster, and more secure desktop applications with a web frontend | Tauri Apps 実のところReactのUI設計とかは一切やったことなくかなり難儀してますが、その裏でこの春休み期間(学生のね)にRustにおけるbollardでちょっとだけdocker状態の取得とか操作を練習していたのでした。 とりあえず最初は状態の確認ができるようなUIのみにして、その後起動・終了を行えるようにボタンを付けるつもりです。現状はこんな感じ(スタブのみです)。 どんな感じ作っているのかですが… とっかかりはそれほど難しくありません。 1 % create-tauri-app で、TypeScriptベース、React使用という感じで雛形を作り、 src/App.tsx で表示に使っているところをゴリゴリ書き換えていきました。 なお、状態表示に関しては事前に調査をしていて、とりあえずuseEffectとタイマーで書き換えるようにしています。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 const [dockerState, setDockerState] = useState(""); // Docker環境の状態を持つ const [vmState, setVmState] = useState(""); // VMの状態を持つ // ....

<span title='2023-04-10 05:39:26 +0900 +0900'>April 10, 2023</span>