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

nomによるnumpyデータのパース

nom nomはrust製のパーサコンビネーターライブラリです. 個人的にはno_stdでの動作をサポートしてる点が嬉しいです. 今回勉強のためにnomでnumpyのファイル(のヘッダ)をパースしてみます. numpyのフォーマット 今回は以下のようにして作成したデータを…

[rust]ZST/DSTによるflexible array memberの実現

flexible array memberとは ZSTを使う方法 DSTを使う方法 flexible array memberとは flexible array memberとはずばり,C言語で以下のようなサイズ定義を持たない構造体メンバのことです(C99から標準). struct X{ size_t len; char value[]; } この構造…

rustで動的にバッファを確保する方法

Boxを使う Vecを使う std::heap::Allocを使う placement-in を使う mallocを使う 1. Boxを使う rustで動的にメモリを確保する方法といってまず思いつくのはBoxを使う方法だと思います.例えば,以下のようにすれば長さ1000のu8のバッファを確保できます. le…