2016-05-29 2 views
4

私はRustにいくつかの小さなスクリプトを書いていました。これらのコマンドは、Rust in Cargoで正規表現を使用するにはどうすればよいですか?

$ rustc dosomething.rs && ./dosomething 

のようなコマンドで実行できます。しかし、私はregexesを使う必要があるケースに遭遇しました。私はextern crate regex;でスクリプトを始めました。と表示されます。これは、私がCargo経由でスクリプトを実行する必要があることを意味します。私は正規表現を使用して、この小さなスクリプトを実行するために管理する唯一の方法は、次のような構造で、独自のディレクトリに私のスクリプトを強制することでした。私は

[package] 
name = "wordcount" 
version = "0.0.1" 

[dependencies] 
regex = "0.1" 

Cargo.tomlをアップロード

. 
├── Cargo.toml 
└── src 
   └── main.rs 

と律儀cargo buildを走りました私の実行可能な実行可能ファイルを得ました。

しかし、Cargoアーティファクトで使用されるディスク容量を計算すると、17個のファイル、21個のディレクトリ、23メガバイトで構成されていました。

大規模なアプリケーションを実行しているときはこれで問題ありません。私は、Mavenが非常に多くのジャーをダウンロードし、23Mが微視的である小さなJavaアプリケーションのようです。

私は、Rustの正規表現を使用してスクリプトを書くための他の方法がないのかどうか疑問に思っています。

Rustに正規表現が組み込まれているか、他のスクリプトと同じディレクトリに自分のワードカウントスクリプトを保持するための何らかの方法がありますか?はい、いいえ、正規表現が必要ですか?おそらく-Lフラグのアナログがありますか?

+2

私はそれが問題ではなく、Regexの箱とその依存関係の合計サイズであると言っていると思います。私が考えることができる唯一の代替案は、ffiとpcreなどのC/C++正規表現エンジンをラップすることです(既にインストールされていると仮定してサイズを数えません)。 –

+0

1つのCargoプロジェクトで複数のバイナリをコンパイルすることができます。これは、すべてを同じディレクトリに保存するための基準を厳密に満たします。 'Cargo.toml'にあなたのソースへのパスを明示的に設定することによって、' src'ディレクトリ自体を削除することもできます。 – BurntSushi5

+1

Cargoを使わずに正規表現の箱を使うこともできますが、Cargoがやっているすべての作業を繰り返す必要があります。たとえば、正規表現の箱には、インストールする必要のあるいくつかの依存関係があります。 – BurntSushi5

答えて

1

はそこ

で正規表現のサポートを内蔵しているが、正規表現のクレート will (probably) bestdのうち?)標準錆のための正規表現ライブラリ。

または他のスクリプトと同じディレクトリに自分のワードカウントスクリプトを保存する何らかの方法はありますか?

貨物プロジェクトにはmore thanが実行可能です。各メインファイルをsrc/binに入れてください。

+0

ああ、私は複数のバイナリプロジェクトを認識していませんでした! –

関連する問題