inkwellにPR投げてマージされた

inkwellって何

RustのLLVMバインディングです、IRをいい感じに吐き出すと思います。*1

該当のPR

Refactor: use matches! in is_xxx functions instead of if-let expression. by Krout0n · Pull Request #232 · TheDan64/inkwell · GitHub

何したの?

何って、matches!マクロを使うようにしただけだが?

Rust 1.42.0 から matches!マクロが導入されました。

macro_rules! matches {
    ($expression:expr, $( $pattern:pat )|+ $( if $guard: expr )? $(,)?) => { ... };
}

このように左辺に式、右辺にパターンを受け取りbooleanを返すマクロです。このPRまではMSRV*2は1.39.0だったのですがCIが1.42.0だったので matches! を使ったリファクタリングができそうなのでやったらマージされました、その際にMSRVも上がりました。

所感

「最近誰でもPR投げられる系のことしかやっていなくて一々ブログに書くのダサいかな〜*3」と思っていたのですが、ホッテントリにあった lacolaco.hatenablog.com を見てこういうPRでも良いから投げていいんだよ〜というのを誰かに啓蒙できたら良いなと思います。

*1: まだ使ったことなくて、調べごとでコードリーディングをしたら見つけた

*2: Minimum Supported Rust Versionの略

*3: 私は他人のを見てもダサいと思わないけど他人が自分をどう思うかは知らないしなぁ...