標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

Rust

Cargo.toml からバージョンを抽出する

Cargo.toml とは Rust のビルドツール cargo が読み書きするファイルで、パッケージについての情報が記述されている。配布用の zip ファイルを生成する際などに、ここからバージョンナンバーを自動で抽出できたら便利だ。 cargo metadata というコマンドで、…

Linux のゴミ箱への拙作のライブラリや、はてなブログ コマンドラインクライアントの対応

最近、作り込んでいる はてなブロククライアント だが、投稿テキストをテキストエディターで編集した後、os.Remove で削除していた。だが、何らかのトラブルがあって投稿が失敗したのに検知できなかったという最悪ケースのため、完全削除よりは、復元できた…

Rust で panic なしに雑にエラーを扱いたいとき

Go だと、errors.New, fmt.Errorf で、簡単にエラーオブジェクトを作れる。 Rust のエラー処理のサンプルをいろいろ見てみたが、panic で終わらせるものが多いが、panic を使った時点で関数の汎用性がほとんどなくなってしまう。 エラーを返す場合、ほとんど…

Rustでゴミ箱コマンドを作ったり

nyagos には、ファイルをゴミ箱へ移動させる trash というコマンドがあります。 実装は Lua で、こんな感じで COM オブジェクトで実現してました。 nyagos.d/trash.lua : if not nyagos then print("This is a script for nyagos not lua.exe") os.exit() en…

Rustで Windows10,11 の端末拡張機能を有効にするライブラリを書きました

作ってから ちょっと間があいてしまいましたが、次のようなライブラリを習作をかねて、Rust で書きました。 hymkor/windows1x-virtualterminal-rs: Enable virtual terminal of Windows1x 標準出力、標準エラー出力でエスケープシーケンスを有効にする Enter…

勉強メモ:Rust で日本語を一文字ずつ列挙する

文字列でUTF-8でエンコードされたテキストを保持する - The Rust Programming Language 日本語版 for c in "नमस्ते".chars() { println!("{}", c); } これだと文字列の長さ分の配列的なメモリ領域が確保されるそうなのので、あまり望ましくない(ヒープの乱…