릴리즈 프로필을 통한 빌드 커스터마이징하기
- dev 프로필
cargo build
를 실행할 때 쓰임
- 개발에 적합한 설정을 기본값으로 가짐
- release 프로필
cargo build --release
를 실행할 때 쓰임
- 릴리즈 빌드용 설정을 기본값으로 가짐
- Cargo.toml 파일에
[profile.*]
섹션을 추가하면 기본 설정을 덮어씌울 수 있음
# opt-level 설정에 대한 dev와 release 프로필의 기본 설정값
[profile.dev]
opt-level = 0
[profile.release]
opt-level = 3
Crates.io에 크레이트 배포하기
문서화 주석 만들기
///
(슬래시 3개)를 이용하여 문서화 주석을 만들 수 있음
cargo doc
명령어를 실행하면 문서화 주석으로부터 HTML 문서를 생성할 수 있음
/// Adds one to the number given.
///
/// # Examples
///
/// ```
/// let arg = 5;
/// let answer = my_crate::add_one(arg);
///
/// assert_eq!(6, answer);
/// ```
pub fn add_one(x: i32) -> i32 {
x + 1
}
//!
은 주석을 담고 있는 아이템을 문서화 할 수 있음
- 일반적으로 크레이트 루트 파일 or 모듈에 사용하여 모듈 전체에 대한 문서를 작성하는 데 사용
//! # My Crate
//!
//! `my_crate` is a collection of utilities to make performing certain
//! calculations more convenient.
/// Adds one to the number given.
// --생략--
pub use로 공개 API 내보내기
pub use
로 내부 아이템을 다시 내보내서(re-export) 새로운 공개 구조를 만들 수 있음
//! # Art
//!
//! A library for modeling artistic concepts.
pub use self::kinds::PrimaryColor;
pub use self::kinds::SecondaryColor;
pub use self::utils::mix;
pub mod kinds {
// --생략--
}
pub mod utils {
// --생략--
}
크레이트에 메타데이터 추가하기
- 크레이트를 배포하기 위해서는 Cargo.toml 파일의
[package]
절 안에 크레이트 이름, 설명, 라이선스 등의 메타 데이터를 추가해야 함
[package]
name = "guessing_game"
version = "0.1.0"
edition = "2021"
description = "A fun game where you guess what number the computer has chosen."
license = "MIT OR Apache-2.0"
[dependencies]
카고 작업공간(workspace)
workspace 생성하기