μΌλΆ λΌμ΄λΈλ¬λ¦¬λ μ±λ₯ μ ν(μ: NonZero
μ¬μ©νμ§ μμ) λλ μ νλ κΈ°λ₯(μΌλΆ API λΉνμ±ν)μΌλ‘ μμ μ μΈ Rustμμ μ€νν μ μμ΅λλ€. μλ‘μ΄ λ°©μμ unstable
λλ nightly
Cargo κΈ°λ₯μ μ¬μ©νμ¬ μ¬μ©μκ° λΆμμ ν Rust κΈ°λ₯μ μ¬μ©ν μ μμ λ μ¬μ©νλλ‘ μ νν μ μλλ‘ νλ κ² κ°μ΅λλ€.
μμ§ μμ μ μ΄μ§ μμ std::rc::Weak
λν ν΄κ²° λ°©λ²μΌλ‘ rust-rc λ₯Ό κ²μνκ³ μμ΅λλ€. νμ¬λ‘μλ μ΄ ν¬λ μ΄νΈλ₯Ό κΈ°λ³Έμ μΌλ‘ μ’
μμ±μΌλ‘ κ°μ§λ λ°©λ²μ΄ μλ κ² κ°μ§λ§ unstable
κΈ°λ₯μ΄ νμ±νλλ©΄ _μλλλ€_. μ΄κ²μ νλ¬Όμ μΆκ°ν μ μμ΅λκΉ?
κΈ°λ³Έκ°μ λλλ¦¬κ³ stable
κΈ°λ₯μ κ°λ κ²μ λΆμμ ν Rustμμλ§ μ¬μ©ν μ μκ±°λ μ¬μ©ν΄μΌ νλ μ’
μμ±μΌλ‘ λ¬Έμ λ₯Ό μ΄λμν΅λλ€.
μ΄κ²λ κ°κ³ μΆμ΅λλ€. midir μλ μ¬λ¬ λ°±μλ(Linuxμ κ²½μ° ALSA λ°/λλ JACK, OSXμ κ²½μ° CoreMIDI λ°/λλ JACK, Windowsμ κ²½μ° WinMM)κ° μμΌλ©°, μ κ³νμ JACKμ νμ±ννκ³ λΉνμ±ννλ jack
κΈ°λ₯ νλκ·Έλ₯Ό κ°λ κ²μ
λλ€. λ€λ₯Έ (λ€μ΄ν°λΈ) νλ. λν JACKμ©μΌλ‘ μ»΄νμΌνλ κ²½μ° ALSA/CoreMIDIμ λν μ’
μμ±μ μ κ±°νμ¬ μμ€ν
μ ALSAκ° μ€μΉλμ§ μμ κ²½μ°μλ μ¬μ©ν μ μλλ‘ νκ³ μΆμ΅λλ€.
λ΄ μ²« λ²μ§Έ μμ΄λμ΄λ μμμ μμ²ν κ², μ¦ jack
κΈ°λ₯μ΄ μ νλλ©΄ alsa-sys
μ’
μμ±μ λ¨μν λΉνμ±ννλ κ²μ
λλ€.
μ΄μ λν λμμ jack
κ° νμ±νλ κ²½μ° λΉνμ±νλ μ μλ κΈ°λ³Έ κΈ°λ₯(μ: native
)μ κ°κ³ μ΄ κΈ°λ₯μ λν νλ«νΌλ³ μ’
μμ±μ κ°λ κ² alsa-sys
κ°μ κ²μ μ¬μ©νμ¬ OSXμ 리λ
μ€μ CoreMIDIμ), [target.x86_64-unknown-linux-gnu.features]
. λν νμ¬λ‘μλ λ¬Έμ λ₯Ό ν΄κ²°ν λμ νλ«νΌλ³ κΈ°λ³Έ κΈ°λ₯ μΈνΈλ₯Ό κ°λ κ²μ΄ λΆκ°λ₯ν κ²μΌλ‘ 보μ
λλ€.
μ§κΈκΉμ§ μ’ μ μμμμ νλ«νΌ μ’ μ μ’ μμ±/κΈ°λ₯μ μ μνμ§ μκ³ μλνλ ν΄κ²° λ°©λ²μ μ°Ύμ μ μμμ§λ§ κ°κ³Όνμ μ μμ΅λλ€.
[target.'cfg(...)'.dependencies]
ꡬ문μ μ¬μ©νλ©΄ cfg(feature = "...")
κ° Rust μ½λμμμ κ°μ΄ λμνλλ‘ νμ©ν¨μΌλ‘μ¨ κ°λ¨ν μ§μν μ μμ΅λλ€.
[target.'cfg(not(feature = "std"))'.dependencies]
hashmap_core = "0.1.2"
νμ¬ μ΄λ¬ν μΉμ μ κΈ°λ₯ μνμ μκ΄μμ΄ νμ±νλ κ²μΌλ‘ μ·¨κΈλλ©° μμ§ν λμκ² λ²κ·Έμ²λΌ 보μ λλ€.
μ μ κ°μ κ²½μ°:
[target.'cfg(not(feature = "std"))'.dependencies]
heapless = "0.2.7"
[features]
default = ["std"]
std = []
std
μ΄ νμ±νλμ§ μμ κ²½μ°μλ§ heapless
μ’
μμ±μ μν©λλ€.
heapless
λ nightlyμμλ§ μλνμ§λ§ std
κ° νμ±νλ κ²½μ° λ΄ λΌμ΄λΈλ¬λ¦¬κ° stableκ³Ό νΈνλκΈ°λ₯Ό μν©λλ€.
νμ¬ λμμ΄ λ²κ·Έμ λκΉ μλλ©΄ μλλ κ²μ λκΉ?
κ°μ₯ μ μ©ν λκΈ
[target.'cfg(...)'.dependencies]
ꡬ문μ μ¬μ©νλ©΄cfg(feature = "...")
κ° Rust μ½λμμμ κ°μ΄ λμνλλ‘ νμ©ν¨μΌλ‘μ¨ κ°λ¨ν μ§μν μ μμ΅λλ€.νμ¬ μ΄λ¬ν μΉμ μ κΈ°λ₯ μνμ μκ΄μμ΄ νμ±νλ κ²μΌλ‘ μ·¨κΈλλ©° μμ§ν λμκ² λ²κ·Έμ²λΌ 보μ λλ€.