Rustメモ

Struct

Rustのオブジェクトは利用する側でmutabilityを変更できるので、pubにするか否かは不整合の有無をベースに考える。

パッケージ設計

Rustのモジュールは、サブモジュールからprivateの要素にアクセスできる。サブモジュールは

  • 非公開にして親モジュールの部品を実装
  • 公開にして親モジュールの拡張を実装

するのに使っている。

Binding

Python

src/lib.rs

#[no_mangle]
pub extern "C" fn hello() {
    println!("Hello World");
}

cargo.tomlのlibを書き換える

[lib]
crate-type = ["cdylib"]
...

Pythonから呼ぶ callrust.py

from ctypes import *
l = cdll.LoadLibrary("./target/debug/libmy.so")
l.hello()

mdBook

$ cargo install mdbook
$ mdbook init
$ mdbook serve

  • serve実行中はincremental build
  • リンクを書くことで対象のページ(md)を作成してくれる
  • include
    • {{#include 外部ファイルのパス}}

その他備忘