2016-05-29 43 views
4

我在Rust寫了幾個小腳本。這些可以通過如下命令如何在沒有貨物的情況下在Rust中使用regexes?

$ rustc dosomething.rs && ./dosomething 

這些工作的偉大運行。但是,我遇到了一個需要使用正則表達式的情況。我開始與腳本extern crate regex;出現,這意味着我需要通過貨運運行我的腳本。我設法運行使用正則表達式這個小腳本的唯一方法是迫使我的腳本到它自己的目錄,具有以下結構:

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

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

[dependencies] 
regex = "0.1" 

裝起來Cargo.toml和忠實地跑cargo build並獲得了我的可執行文件。

但是,當計算貨物製品使用的磁盤空間時,我發現它們由17個文件,21個目錄和23兆字節組成。

現在,這在運行大型應用程序時是完全正確的;我看起來很小的Java應用程序,其中Maven下載了23M的微型罐。

我只是想知道是否沒有其他方式來使用正則表達式在Rust中編寫腳本。 (是的,我確實需要正則表達式,因爲易於使用\pL。)

Rust中是否有內置的正則表達式支持,或者是否將我的wordcount腳本與我的其他腳本保持在同一目錄中?也許有一些類似於-L的標誌嗎?

+2

我想你是在說這不是Cargo的問題,而是Regex箱子及其依賴關係的組合大小。我能想到的唯一選擇是用ffi封裝一個C/C++正則表達式引擎,例如pcre(並且不計算它的大小,假設它已經安裝)。 –

+0

您可以使單個貨運項目編譯多個二進制文件,這些二進制文件在技術上符合將所有內容保存在同一目錄中的條件。您也可以通過在您的'Cargo.toml'中明確設置源代碼的路徑來消除'src'目錄本身。 – BurntSushi5

+1

您可以使用沒有Cargo的正則表達式箱子,但是您必須重複Cargo爲您做的所有工作。例如,正則表達式包有幾個依賴關係,你也必須安裝。 – BurntSushi5

回答

1

是否有內置支持正則表達式拉斯特

否,但正則表達式箱will (probably) be標準(滿分std?)的正則表達式庫生鏽。

或某種方式來保持我的wordcount腳本與我的其他腳本在同一目錄中?

貨物項目可以有一個可執行文件more than。只要把每個主文件放在src/bin

+0

啊,我不知道多個二進制項目! –

相關問題