自分用の備忘録

VimとかJSとか。やったことのメモ。自分のため。

Rust

Rustで簡易的にJSを実行した結果を扱いたい

RustでJSが実行できて、その内容をRust側で使えたらなー。 という要件が出てきたので、やってみたよ的な内容。 「必要な情報がHTMLのForm上には落ちていないけど、JS上には落ちている」 みたいなニッチな条件下での利用を想定。 https://github.com/theduke/…

Seleniumで既に開いているブラウザを操る

普通にE2Eテストを書くと、ブラウザを立ち上げるところから始まります。 そうではなくて、既に立ち上げておいて、途中から自動化したいケースの話。 ポート番号を指定して機動 ポート番号を指定してChromeを機動します。 Macなら /Applications/Google\ Chro…

Rustでクロスコンパイルする

Rustの環境を作ってcargo build --releaseすると、デフォはその環境に合わせた実行ファイルができます。 たとえば、Windowsでやったら.exeが吐き出されます。 他環境に配るのに、毎回その環境でビルドするのも面倒すぎるので、何かしら方法は・・・。 やり方…

Rustで並列処理

Rustで並列処理をやりましょう。 恐れるな!並行性 基本的にはここを読めばできます。 thread::spawnを使ったりなんやかんやするのですが、今回はtokio::spawnの方を使います。 使い方 use tokio::time::{sleep, Duration} #[tokio::main] fn main() { let h…

config-rsで設定ファイルを使う

Rustで設定ファイルをもたせたい場合のTIPS。 config-rs crateを使えばそれっぽくできました。 やり方 [dependecies] config = "0.13.1" [[users]] name = "Alice" age = 21 [[users]] name = "Bob" age = 25 struct User { name: String, age: i32 } fn mai…

CLIで対話形式に進められるCrate「inquire」を試す

よくあるCLIで対話形式に進められるやつを付け加えたいなと思って調べてました。 Rustだと「inquire」というCrateを使えば、楽に実装できそうでした。 基本 [dependencies] inquire = "0.5.2" テキスト use inquire::Text; fn main() { let name = Text::new…

CLIでローディング出すやつ作ってみた

CLIでローディング出すやつ作ってみた話。 プログラム起動させてから、実際にアクションを起こす時間までの待機中が寂しかったので、「よく見るけど、実際どうやって作るん?」と思った次第。 結論、標準出力に\rをつけてあげて、上書きをしていけば良いらし…