2017-11-15 6 views
1

Gibt es ein Rust-Makro oder eine ähnliche Problemumgehung, um den Pfad des 'src' -Ordners, der über cargo new in meiner Quelldatei erstellt wurde, als String-Literal zum Zeitpunkt der Kompilierung oder speziell bei cargo build einzuschließen?Gibt es ein Makro oder eine ähnliche Problemumgehung, um den Pfad des Quellordners (src) zur Kompilierzeit einzubeziehen?

Ich habe erfolgreich etwas ähnliches getan, wo ich include_str! verwenden, um Dateiinhalt einzuschließen, aber ich muss wissen, ob es möglich ist, den Quellpfad direkt in den Code einzuschließen.

Antwort

3

Nein, aber Sie können in der Nähe file! mit bekommen:

const FILE: &'static str = concat!(env!("CARGO_MANIFEST_DIR"), "/", file!()); 

fn main() { 
    use std::path::Path; 

    println!("FILE: {:?}", FILE); 
    println!("src path: {:?}", Path::new(FILE).parent()); 
} 

Ausgänge, on the playground:

FILE: "/playground/src/main.rs" 
src path: Some("/playground/src") 
Verwandte Themen