LoginSignup
5
3

More than 1 year has passed since last update.

Cargo.tomlの「bar = { package = "foo" }」ってなんだ

Last updated at Posted at 2021-09-23

package キーを使うとクレートに別名を付けられる

Rustの勉強がてら、クラメソさんの「RustをつかってAWS Lambdaを実装&AWS CDKでデプロイする」を読んでいたところ、Cargo.tomlの [dependencies] に以下のような記述がされていました。

Cargo.toml
[dependencies]
lambda = { package = "netlify_lambda", version = "0.2.0" }

この package という記述を見たことがなかったので調べたところ、どうやらこれでプロジェクト内で使うクレート名を変更できるようです。
左辺に使いたい別名、package の方に本来のクレート名を書きます。

上記の例では netlify_lambda が本来のクレート名(netlify_lambda)で、 lambda が自分でつけた別名ということですね。

なのでこの場合、例えば netlify_lambda クレートの run 関数は、 netlify_lambda::run ではなく lambda::run のように記述します。

なおこの方法で別名を付けた場合、元の netlify_lambda という名前ではアクセスできなくなります。
局所的に別名にしたいだけなら、import時に use foo as foo_alias とした方がよさそうですね。

以上。

参考
Renaming dependencies in Cargo.toml

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3