2019-01-01から1ヶ月間の記事一覧

Rust Book 勉強会 #3 フォローアップ

Rust Book 勉強会で発表をしてきた。 rust-kansai.connpass.com これは、結構前にQiitaのC++アドベントカレンダーで書いた内容と、Ben Deane氏によるCppConでの発表"Using types effectively"が下敷きになっている。 www.youtube.com あ、この資料にクレジッ…

Rustで型推論を助けるトリック

Rust業界に詳しくないので既に広く知られているものかもしれないが、昨晩突如として以下のようなトリックを思いついた。 struct X<T> {/* fields omitted */} impl X<f32> { pub fn f32(self) -> Self {self} } impl X<f64> { pub fn f64(self) -> Self {self} } let x = </f64></f32></t>…

Rustでtraitのassociated typeに対してtrait boundaryを課す

RustのTraitは内部に型を持つことがある。関連型(associated type)だ trait Hoge { type Value; } impl Hoge for Piyo { type Value = Fuga; } このValue型についてトレイト境界を付けたい。 つまり、ある型Tがあり、型<T as Hoge>::ValueがOtherTraitを満たす場合の</t>…

Rustでgenericなenumを作る

パッと出てこなかったので。 例えば、位置か速度か力かわからないベクトルがあるとする。すると、Rustならenumにするだろう。 enum CoordKind { Position{x:f64, y:f64, z:f64}, Velocity{x:f64, y:f64, z:f64}, } let pos = CoordKind::Position{x: 1.0, y:…

GitBookでドキュメントを作りCircleCIでGitHub-pagesにpushする

今更感 github-pagesに直接何か生成して置くのもCircleCIを使うのも始めてでNode.jsを真面目に使うこともなかった人間がいきなりこれをやったらどうなるかの覚書 GitBookがクラウドサービスに注力してCLIの開発は基本的にやめるよとか言ってるタイミングで自…

2018年にしたこと

ブログ記事を書こうとして、年が変わって一発目だったことに気づき、総括的なことをするべきかどうか考えている。3月の年度末に今年度でやればいいのでは(引き伸ばし癖)という気持ちが芽生えているからだ。 実は、10月くらいに一度総括をしようとしていて…