Rust

clapを使って、Subcommandをネストする

やりたいこと こういう感じで、hoge <subcommand> <sub-subcommand>なCLIを作りたかった。 hoge fuga piyo こうすれば行けた clapのCookbookを読めば解決した。 docs.rs 最小構成はこうなった。 use clap::{Args, Parser, Subcommand}; #[derive(Parser, Debug)] #[command(name = "hoge"</sub-subcommand></subcommand>…

[Rust] Arc

勉強した内容 Arc doc.rust-lang.org スレッドセーフに使えるリファレンスカウンタ。 ヒープに確保したデータを、スレッド間で共有できる様になる。 std::sync::Arc::clone()でArcのインスタンスを作ると、カウントが1増える。 カウントがゼロになると、ヒー…

IPv4アドレスを文字列型のbit列に変換する

やりたかったこと ループバックアドレスだけど、 127.0.0.1 を、 01111111 00000000 00000000 00000001 に変換したかった コード #[cfg(test)] pub mod test { #[test] fn it_works() { match Ipv4Addr::from_str("127.0.0.1") { Ok(addr) => { let actual =…