cargo new
에 반드시 --lib
옵션을 주어야 함.--bin
이 디폴트.cargo new communicator --lib
--lib
는 다음과 같이 라이브러리의 템플릿슬 생성. 'src/lib.rs' 파일.#[cfg(test)]
mod tests {
#[test]
fn it_works() {
assert_eq!(2 + 2, 4);
}
}
<aside>
💡 예전에는 it_works()
함수 몸통이 비어있었지만 지금은 assert_eq!
매크로가 들어가 있다. Rust에서 테스트를 이런 식으로 하는 거로군! 신기.
</aside>
mod
는 모듈을 정의할 때 사용. { }
사이에 기술하는 내용은 모두 해당 모듈에 속함.mod network {
fn connect() {
}
}
mod client {
fn connect() {
}
}
connect
함수는 network
라는 이름 공간에 있음. 이 공간 밮에서 connect
를 참조할 때는 반드시 network::connect()
로 참조해야 함. client::connect()
와 완전 별개임.mod network {
fn connect() {
}
mod client {
fn connect() {
}
}
}
network::connect()
와 network::client::connect()
가 있는 것.mod client {
fn connect() {
}
}
mod network {
fn connect() {
}
mod server {
}
}