본문 바로가기

Rust/기타 팁

Rust. 프로젝트 구조

[1. 개요]

Rust 로 application 작성 시, 규모가 커질 경우 당연하게도 소스 코드를 모듈 별로 분리할 필요가 있다.

여기서는 소스코드로 분리하는 방법을 정리한다.


[2. 개념]

cargo 를 이용하여 두가지 형태의 프로젝트를 생성 할 수 있다.

  • executable
  • library

executable 형태에서는 main.rs 가 진입점이고,

library 형태에서는 lib.rs 가 진입점이다.

 

main.rs 를 기준으로 같은 디렉터리에 있는 소스코드의 경우, 파일 이름명이 바로 module 이 된다.

main.rs 를 기준으로 하위 디렉터리에 있는 소스코드 중 mod.rs 는 해당 디렉터리의 상위 모듈이 되고,

그 디렉터리내 소스코드의 파일명이 하위 모듈이 된다.

 

main.rs 에서는 키워드 mod 를 통해 사용하고자 하는 module 을 import 해야 한다.

 

module 내 함수나 trait 등은 pub keyword 를 통해 외부에 공개할 수 있다.

또, mod.rs 에 서브 모듈등을 import 해야 main.rs 에서 서브 모듈까지 사용 할 수 있다.


[3. 예제]

main.rs 에서 tbb 모듈을 사용하고,

boost 모듈 및 boost 의 하위 모듈인 filesystem 과 algorithm 모듈을 사용한다고 하면

아래와 같은 구조로 구성할 수 있다.

 

main.rs

  • tbb.rs
  • \boost
    • filesystem.rs
    • algorithm.rs

'Rust > 기타 팁' 카테고리의 다른 글

std::process::Command 관련  (0) 2023.12.26
ssh2 관련  (0) 2023.12.19
Rust. 알고리즘 문제 풀이 기본 코드 구조  (0) 2023.11.07
Rust 전역 변수  (0) 2022.08.25
Rust io 성능에 대한 고찰  (0) 2022.08.23