Pascal Hertleifã®èšäºãRustã©ã€ãã©ãªãäœæããããã®ã°ãããã©ã¯ãã£ã¹ã ïŒ2015.10.24ïŒã
çŽ1幎åŸãMozilla Researchã®ããã°ã©ãã³ã°èšèªã§ããRustã«èå³ãæã¡ãã»ãã¥ãªãã£ãé床ãäžŠè¡æ§ã®3ã€ã®ã¿ã¹ã¯ã«çŠç¹ãåœãŠãŸããã CãC ++ãšåçšåºŠã®äœã¬ãã«ã§ãåªããåã·ã¹ãã ïŒãžã§ããªãã¯ãšç¹æ§ãåããïŒã䜿ããããã³ã³ãã€ã©ãŒãåªããCargoããã±ãŒãžãããŒãžã£ãŒãåããŠããŸãã
Rust 1.0ã®ãªãªãŒã¹ ïŒ2015幎5æïŒãã6ãæãçµéããŸãã ãç§ã®äžéšãå«ãå€ãã®ã©ã€ãã©ãªïŒããã±ãŒãžãã¯ã¬ãŒãïŒãcrates.ioã®äžå€®ã¬ãžã¹ã¿ã«å
¬éãããŸããã ä»ã®äººãããªãã®ã©ã€ãã©ãªãèŠã€ãã䜿çšããè£å®ããã®ã«åœ¹ç«ã€ããã€ãã®åªãããã©ã¯ãã£ã¹ã玹ä»ããŸãïŒããã¹ãããšåŒã¶ã«ã¯æ©ãããŸãïŒã
ã³ãŒãããããã«ä¿ã€
ãã¡ãããæãéèŠãªããšã¯ã³ãŒãèªäœã§ãã Rustã¯ããã©ã«ãã§å€ãã®ããšããã§ãã¯ããŸãããã³ãŒããæ¹åããããã«ã§ããããšã¯ä»ã«ããããŸãã
ãã®èšäºã§ã¯ãã³ãŒããèšè¿°ããããã®å
·äœçãªãã³ãã«ã€ããŠã¯èª¬æããŸããã ãã ããã©ã€ãã©ãªã®ããžãã¯ãã¢ãŒããã¯ãã£ãã¿ãŒã³ã®æ§é åã«é¢ãããã³ãã«èå³ãããå Žåã¯ããã€ã§ãå
¬åŒã®æ¬ ïŒ ç¿»èš³ ïŒãšRust Design Patternsãåç
§ã§ããŸãã
rustfmt
rustfmtã¯èªåçã«ã³ãŒããåãã©ãŒãããããç¹ã«èè
以å€ã®äººïŒè»ã¯ã«ãŠã³ãããŸãã-ã³ã³ãã€ã«ãããšã³ãŒããçè§£ããŸãïŒã«çè§£ããããããŸãïŒç¿»èš³è
ã®æ³šæïŒã¹ã¿ã€ã«ã«é¢ããç¡é§ãªåŒæ°ã忢ããŸãïŒã ãããŠã圌ã¯ããã«ã€ããŠã¯ããªãè¯ãä»äºãããŠããããŸããå°ãªããšã圌ã¯ç§ã®ã³ãŒãã§äœãå°ç¡ãã«ããŠããªãã ãã®ã³ãã³ããæã
å®è¡ããã ãã§ãïŒç¿»èš³è
ã®ã¡ã¢ïŒãŸãã¯.rs
æ¡åŒµåã§ãã¡ã€ã«ãä¿åãããšãã«èªårustfmtããšãã£ã¿ãŒã«è¿œå ããŠãã ããïŒãããã«ãããã³ãŒãã¯æ®ãã®Rustã³ãŒãã®ããã«ãªããŸãã
$ rustfmt src/lib.rs
One True Rustã¹ã¿ã€ã«ãå®çŸ©ãã詊ã¿ãè¡ãããŠããã«ãããããããrustfmtã¯ããã©ã«ãã§ããã«åŸãããšã詊ã¿ãŸããã ããã§ãã©ãŒããããªãã·ã§ã³ã®ãªã¹ããèŠã€ããããšãã§ããŸãã çŸæç¹ã§ã¯ãç§ã®ãããžã§ã¯ãã®ã»ãšãã©ã¯æ¬¡ã®èšå®ã䜿çšããŠããŸãïŒããããããžã§ã¯ãã®ã«ãŒãã«ããrustfmt.tomlãã¡ã€ã«ã«ä¿åããŸãïŒïŒ
format_strings = false reorder_imports = true
ïŒç¿»èš³è
ã®ã¡ã¢ïŒãšããã§ã cargo install rustfmt
ãä»ããŠcargo install rustfmt
ã cargo fmt
ãµãã³ãã³ããå©çšå¯èœã«ãªããŸããããããå人çã«ã¯ãrusfmt圢åŒã¯è
¹ç«ãããããªãã·ã§ã³ãæåŸãŸã§ä¿®æ£ããã®ã«åœ¹ç«ããªãã£ããããå®è£
ãå»¶æããŸãããïŒ
ããå€ãã®ãã§ãã¯ã䜿çšããŸãã
ãã§ãã¯ïŒãªã³ãïŒã¯ããã«ãæã«ã³ãŒãããã§ãã¯ããå°ããªã³ã³ãã€ã©ãã©ã°ã€ã³ã§ãïŒäž»ã«ã¹ã¿ã€ã«ãšã©ãŒã«ã€ããŠïŒã ããã©ã«ãã§ã¯ãrustcã«ã¯ãã§ã«dead-code
ïŒ ãããã³ãŒãã®èŠåïŒãnon-snake-case
ïŒäžéšã®èŠçŽ ã®ååãsnake_caseã«ãªãnon-snake-case
èŠåïŒãªã©ã®èŠåããã§ã«å«ãŸããŠããŸãã
ä»ã«ãéåžžã«äŸ¿å©ãªçµã¿èŸŒã¿ãã§ãã¯ãããã€ããããŸãã #![warn(...)]
ã#![deny(...)]
眮ãæããããšã«ãããããããæ¬æ Œçãªã¢ã»ã³ããªãšã©ãŒã«å€ããããšãã§ããŸãïŒ ããã¥ã¢ã«ãåç
§ïŒã éåžžããããããããžã§ã¯ãã«è¿œå ããŸãã
#![deny(missing_docs, missing_debug_implementations, missing_copy_implementations, trivial_casts, trivial_numeric_casts, unsafe_code, unstable_features, unused_import_braces, unused_qualifications)]
æåã®missing_docs
ã¯ç¹ã«äŸ¿å©ã§ããã³ãŒãã«ææžåãããŠããªããããªãã¯ã€ã³ã¿ãŒãã§ã€ã¹ãããå Žåã«èµ·åããŸãã unsafe_code
ãéåžžã«äŸ¿å©ã§ãããã®ãããã§ãã©ã€ãã©ãªã¯äººã
ã®ç®ã«ã¯ããä¿¡é Œã§ããããã«èŠããŸãã
䜿çšå¯èœãªãã¹ãŠã®ãã§ãã¯ãšãã®èª¬æã®ãªã¹ãã¯ã rustc -W help
ã³ãã³ãã®åºåã«ãããŸãã
ç¥ã®ãã§ãã¯ãžã®ãããªããã§ãã¯ïŒ
ãªã³ããè¯ãããšã«ãã§ã«æ°ä»ããŠãããšæããŸãã ãããã£ãŠã clippyã®äœè
ã¯ããã«100ãæžããŸããïŒå®éãããŒãžã§ã³0.0.21ã«ã€ããŠã¯çŽ68ã§ãïŒç¿»èš³è
ã®ã¡ã¢ïŒ ãã§ã«ãã£ãš ïŒïŒã clippyã¯ä»ã®ãšããã³ã³ãã€ã©ãã©ã°ã€ã³ã§ããããããããæäœããã«ã¯rutscã®å€éã¢ã»ã³ããªãå¿
èŠã«ãªããŸããããã¯ããŸããŸãªæ¹æ³ã§åŒã³åºãããšãã§ããŸããããšãã°ã cargo-clippyã䜿çšãããããããžã§ã¯ãã®ãªãã·ã§ã³ã®äŸåé¢ä¿ãšããŠè¿œå ããŸãã
ç§ã¯æåŸã®ãªãã·ã§ã³ã奜ãã®ã§ããããç§ã®Cargo.tomlã«è¿œå ããŸããïŒ
[dependencies] clippy = {version = "0.0.21", optional = true} [features] default = [] dev = ["clippy"]
ãããã®èšå®ã«ãããclippyã¯ãªãã·ã§ã³ã®äŸåé¢ä¿ãšãªãã dev
ãã©ã°ãèšå®ãããŠããå Žåã«ã®ã¿æå¹ã«ãªããŸãã ã¡ã€ã³ããã±ãŒãžãã¡ã€ã«ã«ã¯ããªãã·ã§ã³ã§æ¬¡ã®ããã«å«ããããšãã§ããŸãã
#![cfg_attr(feature = "dev", allow(unstable_features))] #![cfg_attr(feature = "dev", feature(plugin))] #![cfg_attr(feature = "dev", plugin(clippy))]
cargo build --features "dev"
ããŠãããžã§ã¯ããcargo build --features "dev"
ãšãèªåçã«ã¯ãªãããã§ãã¯ãããªã¬ãŒãããŸãã ïŒãã¡ããã以åã«çŠæ¢ããŠããå Žåã«ã®ã¿ã unstable_features
ãèš±å¯ããå¿
èŠããããŸãïŒã
èŠåïŒçŸåšãã³ã³ãã€ã©ãã©ã°ã€ã³ã¯äžå®å®ã§ãã æ°ããã³ã³ãã€ã©ãã€ãã¢ã»ã³ããªãã¢ããã°ã¬ãŒããããšãclippyãç Žæããå¯èœæ§ããããŸãã ã¯ãªããã®äœæè
ã¯éåžžããã¹ãŠããã°ããä¿®æ£ããŸãã
ïŒç¿»èš³è
ã®ã¡ã¢ïŒ clippyã®ãªã³ã©ã€ã³ããŒãžã§ã³ã¯æ¯èŒçæè¿ç»å ŽããŸããããä»ã§ã¯å€ã®rustcã®ããŒã«ã«ã€ã³ã¹ããŒã«ã«ç
©ãããããReadme.mdã«ãã1ã€ãããžãä»ããçç±ããããŸãïŒïŒ
çµã¿èŸŒã¿ã®ãã§ãã¯ãšåæ§ã«ãclippyã®äžéšã®ãã§ãã¯ã¯ããã©ã«ãã§ãªãã«ãªã£ãŠããŸãã å®å
šãªãªã¹ããèŠã€ããããã«ã¯ãªããããã¥ã¡ã³ããŒã·ã§ã³ãèŠãŠãããªãã®ããã«é¢çœããã®ãå«ããŠãã ããïŒ
ãã¹ã
Rustã«ã¯çŽ æŽããããã¹ããµããŒããçµã¿èŸŒãŸããŠããŸããã¢ãžã¥ãŒã«ã®ãã¹ããã¢ãžã¥ãŒã«å
ã§ãã°ããèšè¿°ã§ããŸãããŸããcargoãèªåçã«å®è¡ããŸãïŒ tests/
ãã£ã¬ã¯ããªå
ã®*.rs
ãã¡ã€ã«ïŒã ããã ããã¥ã¡ã³ãå
ã®examples/
ïŒãŸãã¯examples/
ïŒããã¹ããããŸãã
ããã§èšãããšã¯ãã以äžãããŸããã å
¬åŒã®æ¬ã®ç« ãèªãã§ãã ããïŒ ç¿»èš³ ïŒã
ãããžã§ã¯ãã®ã€ã³ãã©
ã³ãŒãèªäœã«å ããŠããããžã§ã¯ããå
¬éãããšãã«èæ
®ããå¿
èŠãããä»ã®ãã€ã³ãããããŸãã ãããã¯äž»ã«GitHubã§ã³ãŒããå
¬éãã人ã«åœ¹ç«ã¡ãŸããããããã®ãã³ãã®äžéšã¯ãããªãã§é©çšãããŸãã
貚ç©ã¡ã¿ããŒã¿
䟿å©ãªã©ã€ãã©ãªã®æ€çŽ¢ã容æã«ããããã®æåã®ïŒãããŠæãç°¡åãªïŒããšã¯ã Cargo.toml
ãã¡ã€ã«ã«Cargo.toml
ã§ãã crates.ioã«ã¯å€ãã®ã¡ã¿ããŒã¿ãã£ãŒã«ãããããŸãã HSLããã±ãŒãžã®äŸã次ã«ç€ºããŸãã
[package] name = "hsl" version = "0.1.0" authors = ["Pascal Hertleif <my@email.address>"] repository = "https://github.com/killercup/hsl-rs.git" homepage = "https://github.com/killercup/hsl-rs.git" license = "MIT" readme = "README.md" documentation = "http://killercup.imtqy.com/hsl-rs/" description = "Represent colors in HSL and convert between HSL and RGB."
ãšããã§ãäŸåé¢ä¿ã«'*'
ããŒãžã§ã³ã䜿çšããªãã§ãã ãã-crates.io㯠ãCargoãäŸåããã»ãã³ãã£ãã¯ããŒãžã§ãã³ã°ãç¡èŠããããããã®ãããªããã±ãŒãžãæåŠããŸãã ãŸããäŸåããããã±ãŒãžã®ææ°ããŒãžã§ã³ã®è¿œå ãç°¡çŽ åããããã«ã cargo-editã䜿çšã§ããŸã ã
README.md
ãªããžããªã®éå§ããŒãžãèŠãŠãã人ã¯ã Readme.md
ãã¡ã€ã«ã®å
容ãèŠãå¯èœæ§ãé«ããªããŸãã æšæºçãªè³ªåã«å¯Ÿããåçãããããšã確èªããŠãã ããã
- ããã¯ã©ã®ãããªãããžã§ã¯ãã§ããïŒ åœŒã¯ã©ã®ãããªåé¡ã解決ããŸããïŒ ã©ããã£ãŠïŒ
- ã€ã³ã¹ããŒã«/äœ¿çšæ¹æ³
- ããã¥ã¡ã³ãã¯ã©ãã«ãããŸããïŒ
- ãããžã§ã¯ãã®ã©ã€ã»ã³ã¹ã¯äœã§ããïŒ
ïŒç¿»èš³è
泚ïŒãšããã§ãã©ã€ã»ã³ã¹ã«ã€ããŠïŒ1æã«ãRustã³ãã¥ããã£ã¯éèŠãªãããžã§ã¯ãã®ã»ãšãã©ããã¥ã¢ã«MIT / Apache-2.0ã©ã€ã»ã³ã¹ã«ç§»è¡ããããã©ã«ãã§å°æ¥äœ¿çšããããšãå§ããŠããŸããåŒæ°ã¯ãããšãã°cgmathã©ã€ãã©ãªã¿ã¹ã¯ã«ãããŸã ãïŒ
ãŸãã Readme.md
ãã©ã€ãã©ãªã®å°ããªäœ¿çšäŸãæçš¿ããã®ã«æé©ãªå Žæã§ããå€ãã®å Žåã人ã
ãã©ã€ãã©ãªãçè§£ãå§ããã®ã«äŸ¿å©ã§ãã Readme.md
ïŒããã³Markdown圢åŒã®ä»ã®ããã¥ã¡ã³ãïŒã®äŸãåäœããããšã確èªããã«ã¯ã skepticã䜿çšã§ããŸãã Cargoã¢ã»ã³ããªããã»ã¹ïŒ build.rs
ãã¡ã€ã«ïŒã«å°ããªããã¯ã远å ããããšã§ãæççãªäººãåŒã³åºããŠãMarkdownãã¡ã€ã«ã®ã³ãŒããµã³ãã«ãéåžžã®ãã¹ãã«å€æã§ããŸãã ïŒè©³çްã«ã€ããŠã¯ãæççãªããã¥ã¡ã³ããåç
§ããŠãã ãããïŒ
ãã®ä»ã®ã¡ã¿ãã¡ã€ã«
.gitignore
ãã¡ã€ã«ã远å ããããšãå¿ããªãã§ãã ãããããã§ã¯ãgitãtarget/
ãã£ã¬ã¯ããªã远跡ããããšã¯çŠæ¢ãããŠããŸãïŒ .gitignore
泚æïŒCargoã¯äžæãã¡ã€ã«ãšã¢ã»ã³ããªã¢ãŒãã£ãã¡ã¯ãã«ãã®ãã£ã¬ã¯ããªã䜿çšããããã ããŒãé貚ã§ä¿®æ£ããæå³ã¯ãããŸããïŒã ã©ã€ãã©ãªããã±ãŒãžïŒã€ãŸããå®è¡å¯èœãã¡ã€ã«ãçæããªãïŒã®å Žåã Cargo.lock
ãã¡ã€ã«ãç¡èŠããCargo.lock
ãŸãïŒç¿»èš³è
ã®ã¡ã¢ïŒ why ïŒã
ãã¹ãŠã®ãããžã§ã¯ãã«è¿œå ããããšããŠããå¥ã®ãã¡ã€ã«ã¯.editorconfig
ã§ãã æ¬¡ã®èšå®ã䜿çšããŸãã
root = true [*] end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true indent_style = space indent_size = 4 [*.md] trim_trailing_whitespace = false
ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³
ãªãŒãã³ãœãŒã¹ãããžã§ã¯ããGitHubã§ãã¹ããããŠããå Žåã Travis CIã®ç¶ç¶ççµ±åãµãŒãã¹ãç¡æã§äœ¿çšã§ããŸãã æåºããã倿ŽïŒã³ãããïŒãŸãã¯è¿œå èŠæ±ããšã«ãããŸããŸãªç°å¢ïŒããšãã°ãRustã®å®å®çãããŒã¿çãå€éããŒãžã§ã³ããŸãã¯ç°ãªãã¢ãŒããã¯ãã£ïŒã§ãã¹ãã®èªåèµ·åãæ§æã§ããããã䟿å©ã§ãã
travis-cargoã䜿çšãããšãTravisã§ãã¹ããšãã³ãããŒã¯ãå®è¡ããããã¥ã¡ã³ããçæïŒããã³GitHub Pagesã«ããã·ã¥ïŒããã¹ãã«ãã¬ããžãèªã¿åãïŒããã³Coverallsã«éä¿¡ïŒã§ããŸãã
ãã®.travis.yml
ãã³ãã¬ãŒãã®ãããªãã®ã䜿çšããŸãã
sudo: false language: rust rust: - nightly - beta - stable matrix: allow_failures: - rust: nightly before_script: - | pip install 'travis-cargo<0.2' --user && export PATH=$HOME/.local/bin:$PATH script: - | travis-cargo build && travis-cargo test && travis-cargo bench && travis-cargo --only stable doc addons: apt: packages: - libcurl4-openssl-dev - libelf-dev - libdw-dev after_success: - travis-cargo --only stable doc-upload - travis-cargo coveralls --no-sudo notifications: email: on_success: never env: global: - TRAVIS_CARGO_NIGHTLY_FEATURE=dev - secure:
ïŒç¿»èš³è
ã®ã¡ã¢ïŒãªãªãžãã«ã§ã¯ãããã¯ãåºæ¬èšå®ããšåŒã°ããŸããããåºæ¬ãã¯åã«sudo: false\nlanguage: rust
ã§ãããããããã§ã¯åæããŸããïŒ
ãã®æ§æã«ã¯ãç¹ã«clippyãèµ·åããããã®ããã€ãã®ãªãã·ã§ã³ããããŸããå€éã³ã³ãã€ã©ã«ãããã«ãçµæã¯éèŠã§ã¯ãããŸããïŒãã©ã°ã€ã³ã€ã³ã¿ãŒãã§ã€ã¹ã¯å€æŽã§ãããã¹ãŠãå£ããŸãïŒãå€éã³ã³ãã€ã©ã¯dev
ãã©ã°ã§åŒã³åºãããŸãã
Travisã¯Linuxããã³Mac OS Xã§ãã«ãã§ããŸããWindowsã§ã®ãã¹ãã«ã€ããŠã¯ã AppVeyorãã芧ãã ãã ïŒãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã§ãç¡æã§ãïŒã ïŒç¿»èš³è
ã®ã¡ã¢ïŒéåžžã«äŸ¿å©ã§ãããTravisãµãŒãã¹ã«æ¯ã¹ãŠéåžžã«é
ãã§ããïŒ
ããã¥ã¡ã³ãã®èªåçæ
travis-cargoã§ãµããŒããããŠããçæãããããã¥ã¡ã³ãã®èªåèªã¿èŸŒã¿ïŒã€ãŸããrust-docåºåãgh-pagesãã©ã³ãã«éä¿¡ïŒããã·ã¥ïŒããïŒãæå¹ã«ããã«ã¯ãã¢ã«ãŠã³ãã®ã¢ã¯ã»ã¹ããŒã¯ã³ãå«ãGH_TOKEN
ç°å¢å€æ°ã远å ããå¿
èŠããããŸãGitHubïŒå¶éä»ãæš©å©ïŒã ããã§äœæã§ããŸãïŒåãããžã§ã¯ãã«1ã€ãããŸãïŒã ããŒã«ãŒãæå·åããã«ã¯ããããžã§ã¯ãã®ã«ãŒããã£ã¬ã¯ããªã§å®è¡ããŠTravisCLIãŠãŒãã£ãªãã£ïŒ gem install travis
travisãšå
±ã«gem install travis
ïŒã䜿çšã§ããŸãïŒ 1234
ãããŒã«ãŒã«çœ®ãæããŸãïŒã
$ travis encrypt "GH_TOKEN=1234" --add env.global
ãã¹ãŠãæ£ããæ§æããããã .imtqy.com/
ãããžã§ã¯ãææžïŒäŸïŒ killercup.imtqy.com/hsl-rsïŒã衚瀺ãããŸãã
ïŒç¿»èš³è
ã®ã¡ã¢ïŒhtmlã§ã¬ã³ããªã³ã°ãããããã¥ã¡ã³ãããããžã§ã¯ããã©ã³ãã«ããã·ã¥ããããšã¯éåžžã«äžè¬çãªæ
£è¡ã§ãããã¢ã€ãã¢ã®ããã«æããŸããçæ³çã«ã¯ãcrates.ioã¯rustdocããã«ãããã®åºåãä¿å/衚瀺ããïŒ godoc.orgã®ç²Ÿç¥ã§ïŒ ïŒ ãcrates.fyiã®åœ¢ã§è¯ãæŸèæããããŸãã ãïŒ
ã»ã
ç¶ç¶çã€ã³ãã°ã¬ãŒã·ã§ã³ã䜿çšãããšããã«ãªã¯ãšã¹ãã®ã³ãŒããæ©èœããããŒãžã®æºåãã§ããŠããããšã確èªã§ããŸãã githubã®ææ°ã®å€æŽ- å¿
é ãã§ãã¯ïŒã¹ããŒã¿ã¹ãã§ãã¯ïŒ ïŒ translation ïŒã§ä¿è·ããããã©ã³ãã«ãã ãããŒãžã®åã«ãã¹ãŠã®ãã¹ãã«åæ Œããããšã確èªã§ããŸãã ãããããã©ã³ããšãã¹ã¿ãŒã®æ³šå
¥åŸã«ãã¹ããåæ Œãããã©ããã¯ããããŸããïŒ
GitHubã®Rustãããžã§ã¯ãã¯ã Borsçµ±åããããã䜿çšããŠãã®åé¡ã解決ããŸããå
å«ãªã¯ãšã¹ãèªäœãããŒãžãã代ããã«ãBorsã«ãããè¡ãããã«æç€ºããŸãã Borsã¯ã1ã€ã®èŠæ±ãå«ãïŒãã¥ãŒããããŸãïŒããããçŸåšã®ãã¹ã¿ãŒã«ããŒãžãããã¹ãŠã®ãã¹ããå®è¡ããæåããå Žåããã¹ã¿ãŒãã©ã³ãã«æ°ããããŒãžã§ã³ãéä¿¡ããŸãã ããã¯ã倿°ã®ã€ã³ã¯ã«ãŒãèŠæ±ã®åœ±é¿ã«æéããããå¯èœæ§ãããããšãæå³ããŸããããã¹ãŠã®ãã¹ããåžžã«ãŠã£ã¶ãŒãã§å®è¡ãããã®ã§å®å¿ã§ããŸãã
Borsaã³ã¢ã¯homuãšåŒã°ãããããžã§ã¯ãã§äœ¿çšã§ããŸãã githubã§homuãã³ã©ãã¬ãŒã¿ãŒãšããŠè¿œå ãã homu.ioã§ãããžã§ã¯ããç»é²ããã³ã¡ã³ã@homu r+
ã䜿çšããŠå
å«ãªã¯ãšã¹ããããŒãžããŸãã
ãã®ä»ã®ããªãã¯
ãã£ãšç¥ãããã§ããïŒ OKãããã«ããã€ãã®ãã³ãããããŸãïŒ
ã¢ããªã±ãŒã·ã§ã³ã®ãã«ãããŒãžã§ã³ãã³ãŒãå
ã§è€è£œããªãã§ãã ããã env!("CARGO_PKG_VERSION")
ã䜿çšããŠããã«ãäžã«Cargo.tomlããããŒãžã§ã³ãååŸããŸãã
highfiveãGitHubã®æ°ããã³ã©ãã¬ãŒã¿ãŒã«èªåçã«æšæ¶ããŸãã
ããŠãŒã¶ãŒãã¬ã³ããªãŒãã¹ã¿ã€ã«ã§ã³ãããã¡ãã»ãŒãžãèšè¿°ãã Clogã䜿çšããŠå€æŽãã°ãèªåçã«äœæããŸãã GitCopã¯ã倿Žã®èª¬æã®æ£ç¢ºæ§ãèªåçã«ãã§ãã¯ã§ããããããã§ãïŒãªãŒãã³ãœãŒã¹ãããžã§ã¯ãã§ã¯ç¡æïŒã
- Cargoã®ãµãã³ãã³ããããã«ã€ã³ã¹ããŒã«ããŸãã
ïŒç¿»èš³è
ã®ã¡ã¢ïŒç§ã¯Clogã®äœ¿çšã«ã€ããŠã¯æ¬åœã«åæããŸããã ããã§ ãç§ã«ãšã£ãŠãåªãã倿Žãã°ã¯ãããã¯èªåçã«æ©èœããŸããããããããããããèªå倿Žãã°ã¯ãŸã£ãããªãããã¯ãŸãã§ããïŒ
ãããã«
æåŸãŸã§èªãã§ãããŠããããšãïŒ æ¬¡ã®ã©ã€ãã©ãªïŒRustïŒã§ããã§èª¬æãããŠããææ³ã®ããã€ãã䜿çšããŠãã ããã