やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Rustのエクスポート(pub use)

 ドキュメントに新たな項目として追加される。

成果物

コード

要点

pub use kinds::PrimaryColor;

 上記コードを書くと、cargo docしたときにRe-exports項目として一覧される。

エクスポートしない

$ cargo new art --lib

src/lib.rs

//! #芸術
//!
//! 芸術的な概念をモデル化するライブラリ。

pub mod kinds {
    /// RYBカラーモデルによる主色
    pub enum PrimaryColor {
        Red,
        Yellow,
        Blue,
    }
    #[derive(Debug,PartialEq)]
    /// RYBカラーモデルによる副色
    pub enum SecondaryColor {
        Orange,
        Green,
        Purple,
    }
}
pub mod utils {
//    use kinds::*;
    use super::kinds::*;
    ///2つの主色を同じ割合で混合し、副色にする
    pub fn mix(c1: PrimaryColor, c2: PrimaryColor) -> SecondaryColor {
        SecondaryColor::Orange
    }
}

#[cfg(test)]
mod tests {
    use super::*;
    #[test]
    fn test_utils_mix() {
        assert_eq!(utils::mix(kinds::PrimaryColor::Red, kinds::PrimaryColor::Yellow), kinds::SecondaryColor::Orange);
    }
}
$ cargo test
$ cargo run
$ cargo doc --open

f:id:ytyaru:20190704082337p:plain

エクスポートする

 以下を先頭に追記する。

src/lib.rs

pub use kinds::PrimaryColor;
pub use kinds::SecondaryColor;
pub use utils::mix;
$ cargo doc --open

f:id:ytyaru:20190704082359p:plain

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1219 SMP Tue May 14 21:20:58 BST 2019 armv7l GNU/Linux

前回まで