March 21, 2021
epub-zip-rs
Rustリハビリのためにとにかく何か作る計画、展開したEPUBをzipするだけの簡単なコードを書いた。Rustで書くまでもなくshell scriptでやった方が早いような処理だ。 https://github.com/skoji/epub-zip-rs * エラー処理は毎度わからない。昔使ったfailureは今はdeprecated * ファイルを扱おうとするとPath, PathBuf, OSStr、などが入り乱れるし、どれも正しくOptionやResultで包まれているので、ちょっとしたことをやるにもたくさんコードを書かなくてはならない感じがする。これは、私がわかってないところもあるのだろう。 * zip-rsは、公式のexampleでdeprecatedなA...
Read more
Read more
March 15, 2021
Rustでつまづくところ
所有権はもちろんなのだけど、他の部分でも私は割とつまづきがちだ。 * 型強制:例えばrcの型がRc<RefCell<T>>の時、rcから直接RefCellのメソッド、例えばrc.borrow_mut()が呼べるのは、Rc<T>がDeref<T>を実装しているから。こういう型強制の仕組みがあっちこっちにあって当たり前に使われる。 * Trait:原則としてuseしないとその型が実装してるtraitが見えないので、LSPに頼ってメソッド探すと見つからないし、公式ドキュメントでもimpl Trait以下が畳まれててすぐに気づかないこともある * 関連型とジェネリクス:これはそもそも違うものなので慣れればわかっていくだろうけれど、一見似ている。 * ref, &, mutの...
Read more
Read more