ハイサイ!オースティンやいびーん。
概要
ローカルで開発しているクレートを、別のダイレクトりにあるクレートで使いたい時に、どのように設定すれば使えるか紹介します。
方法
[dependencies.crate_name]と分ける方法
Cargo.tomlに以下のように[dependencies.crate_name]を追加して、パスを指定します。
[dependencies.wp_query_rs]
path = "../wp_query_rs"
パスは相対パスを使っていますが、もしかしたら絶対パスも使えるのかもしれません。お試しあれ!
lib.rsもしくはmain.rsでは通常のcrates.ioから追加したクレートと同様に使えます。
use wp_query_rs::{query::params::Params, WP_Post, WP_Query};
[dependencies]の中に入れる方法
ブラケットを分けなくてもできます!
[dependencies]
wp_query_rs = { path = "../wp_query_rs" }
この場合だと、ローカルから参照しているものとダウンロードしているものが混在するので、もしかしてもっとも明示的な書き方じゃないのかもしれません。
まとめ
なんと簡単でした。npm linkで半日潰されるような煩雑さ、yalcのように第三者のツールに手を伸ばすことなくあっさり解決できてしまうRust/Cargoの設計の良さですが、筆者はNodeで長いこと苦戦に慣らされたせいか、まだ半信半疑です![]()
Rustがチヤホヤされている理由がよーくわかりました。
もう二度とJavaScriptを触りたくないの。なんて言えないのですが![]()
おそらくRustのWorkspaceを使ったらもっとわかりやすいでしょうね。