2017-11-15 29 views
1

내 소스 파일에 컴파일시 또는 특히 cargo build을 수행 할 때 문자열 리터럴로 cargo new을 통해 생성 된 'src'폴더의 경로를 포함하도록 Rust 매크로 또는 비슷한 해결 방법이 있습니까?컴파일 타임에 원본 폴더 (src) 경로를 포함하는 매크로 또는 유사한 해결 방법이 있습니까?

파일 내용을 포함하기 위해 include_str!을 사용하여 비슷한 작업을 성공적으로 수행했지만 코드에 src 경로를 직접 포함 할 수 있는지 알아야합니다.

답변

3

아니,하지만 당신은 가까운 file!를 사용하여 얻을 수 있습니다

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()); 
} 

출력, on the playground :

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