歩いたら休め

なんでこんな模様をしているのですか?

【Rust】Rustで数値計算プロジェクトを試す その4

昨日の続きで、Rustのcratesを利用してサインカーブをプロットしたいのですが、エラーが出てしまっています。gitconfigは、以前source treeを利用していた際のものが残っていただけだったので、ちゃんと設定し直しました。

エラー箇所を確認するためのシンプルな例をコンパイルしてみました。

extern crate plotlib;
use plotlib::scatter::Scatter;

fn main() {
    // Scatter plots expect a list of pairs
    let data1 = [(-3.0, 2.3), (-1.6, 5.3), (0.3, 0.7), (4.3, -1.4), (6.4, 4.3), (8.5, 3.7)];

    // We create our scatter plot from the data
    let s1 = Scatter::from_slice(&data1);
    println!("{:?}", s1);
}

やはりこういうエラーが出ます。

$ cargo run --verbose
       Fresh svg v0.5.12
       Fresh plotlib v0.3.0
   Compiling duplex-pendulum v0.1.0 (/Users/takeshi/Desktop/projects/duplex-pendulum)
     Running `rustc --edition=2018 --crate-name duplex_pendulum src/main.rs --color always --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=f4638e3323e9a474 -C extra-filename=-f4638e3323e9a474 --out-dir /Users/takeshi/Desktop/projects/duplex-pendulum/target/debug/deps -C incremental=/Users/takeshi/Desktop/projects/duplex-pendulum/target/debug/incremental -L dependency=/Users/takeshi/Desktop/projects/duplex-pendulum/target/debug/deps--extern plotlib=/Users/takeshi/Desktop/projects/duplex-pendulum/target/debug/deps/libplotlib-2ce36c14f3ccea1e.rlib`
error[E0599]: no function or associated item named `from_slice` found for type `plotlib::scatter::Scatter` in the current scope
 --> src/main.rs:9:14
  |
9 |     let s1 = Scatter::from_slice(&data1);
  |              ^^^^^^^^^^^^^^^^^^^ function or associated item not found in `plotlib::scatter::Scatter`

error: aborting due to previous error

For more information about this error, try `rustc --explain E0599`.
error: Could not compile `duplex-pendulum`.

Caused by:
  process didn't exit successfully: `rustc --edition=2018 --crate-name duplex_pendulum src/main.rs --color always --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=f4638e3323e9a474 -C extra-filename=-f4638e3323e9a474 --out-dir /Users/takeshi/Desktop/projects/duplex-pendulum/target/debug/deps -C incremental=/Users/takeshi/Desktop/projects/duplex-pendulum/target/debug/incremental -L dependency=/Users/takeshi/Desktop/projects/duplex-pendulum/target/debug/deps --extern plotlib=/Users/takeshi/Desktop/projects/duplex-pendulum/target/debug/deps/libplotlib-2ce36c14f3ccea1e.rlib` (exit code: 1)

ただ、他の関数(style)を無理やり呼び出すコードに変更すると「function or associated item not found in〜」のエラーは起きないし(引数の型の問題でエラー起きる)、名前空間関連の問題であるように思います。

github.com

なんだか消化不良ですが今日はこれくらいで。Rustの最近のコンパイラのバージョンで名前空間の仕様が変わったとかかな…。