[rust] 소소한 사용법 몇 가지

Page content

rust 개발시 참고할 만한 정보를 정리. 계속 추가할 예정.

Attribute


[must_use]

async 함수의 반환 결과(impl Future)를 반드시 사용하도록(반환 값을 반드시 수신 하도록) compiler 경로(warning)을 표시 하도록 설정 할 수 있다.

#[must_use]
async fn bar() -> u32 { 0 }

async fn caller() {
    bar().await; // bar() 함수의 결과를 수신하지 않음
}

위와 같은 경우 compile시 다음과 같은 경고를 받는다.

warning: unused output of future returned by `bar` that must be used
  --> src/lib.rs:5:5
  |
  |      bar().await;
  |      ^^^^^^^^^^^
  |
  = note: `[warn(unused_must_use)]` on by default

Documentation


feature 필요 여부를 문서에 포함 시키기

라이브러리 형태의 crate를 만들 때 여려 feature로 구분되어 있다면, 특정 기능은 featureA를 지정해야만 사용할 수 있도록 문서에 표시할 수 있다.

#[cfg_attr(docsrs, doc(cfg(feature = "featureA")))]

Private items을 문서에 포함 시키기

문서화 결과물 생성시(HTML) --document-private-items 옵션을 이용해 private item에 대한 주석을 포함 시킬 수 있다.

cargo doc --document-private-items