๋ง์ดํฌ๋ก์ํํธ ะพะฟัะฑะปะธะบะพะฒะฐะปะฐ ๋๊ตฌ ๋ฌ์คํธ/WinRT, ์ด๋ฅผ ํตํด Rust ์ธ์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ํคํ
์ฒ ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค. WinRT (Windows ๋ฐํ์). ํ๋ก์ ํธ ๊ด๋ จ ์ฝ๋ ์ถํ ๋ MIT ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ.
Rust/WinRT๋ฅผ ์ฌ์ฉํ๋ฉด C++/WinRT์ ์ ์ฌํ๊ฒ ํ์ค Rust ๋๊ตฌ ํคํธ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์ ๋ง๋ค ์ ์์ผ๋ฏ๋ก API๋ฅผ ์ค๋ช
ํ๋ ๋ฉํ๋ฐ์ดํฐ์์ ์ฆ์์์ ์์ฑ๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์กด ๋๋ ํฅํ WinRT API๋ฅผ ํธ์ถํ ์ ์์ต๋๋ค. ์ด๋ฌํ WinRT API ํธ์ถ์ ๋ค๋ฅธ Rust ๋ชจ๋์ ์ฐ๊ฒฐํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. Rust/WinRT๋ C++/WinRT ์ ํ๋ฆฌ์ผ์ด์
์ C++์์ Rust๋ก ๋ ์ฝ๊ฒ ์ด์ํ๋ ๋ฐ์๋ ์ ์ฉํ ์ ์์ต๋๋ค.
๊ฒ๋ค๊ฐ ์ฃผ๋ชฉํ ์ ์๋ ๊ฒ์ ์ถํ ํ๋ก์ ํธ์ ์ฒซ ๋ฒ์งธ ์ํ ๋ฆด๋ฆฌ์ค ๋
น ๋ถ์๊ธฐ์ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ฌ์ฉํ๋๋ก ์ต์ ํ๋ ์๋ก์ด ์ปดํ์ผ๋ฌ ํ๋ฐํธ์๋์
๋๋ค. ์ด ํ๋ก์ ํธ๋ ํ์ค Rustc ์ปดํ์ผ๋ฌ๋ฅผ ๋ชจ๋๋ก ๋ถํ ํ ์์
์ ๊ฒฐ๊ณผ์ด๋ฉฐ, ์ด๋ฅผ ํตํด Rust-๋ถ์๊ธฐ๋ฅผ ๋ง๋ค ๋ ๊ธฐ์ฑํ์ด์ ๊ฒ์ฆ๋ ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ๋์์ต๋๋ค. Rust-analyzer๋ฅผ ์ฌ์ฉํ๋ฉด LSP(์ธ์ด ์๋ฒ ํ๋กํ ์ฝ) ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ง์ ์๋ฒ๊ฐ ๋ด์ฅ๋์ด ์์ด IDE์์ Rust ์ธ์ด์ ๋ํ ์ง์์ ํ์ฅํ ์ ์์ต๋๋ค.๊ฒ์ผ๋ฅธ"๊ทธ๋ฆฌ๊ณ ์ฆ๋ถ ์ปดํ์ผ.
Rust-analyzer๋ ๊ตฌ๋ฌธ ๊ฐ์กฐ, ์ฝ๋ ์์ฑ, ์คํ ๋ถ์, ์ ํ ๊ฐ์ง, ๋งํฌ ๊ฒ์ ๋ฑ ์ธ์ด ์๋ฏธ ๋ถ์๊ณผ ๊ด๋ จ๋ LSP ์๋ฒ์ ์ผ๋ฐ์ ์ธ ๊ธฐ๋ฅ๋ ์ง์ํฉ๋๋ค. ๊ธฐ์กด LSP ์๋ฒ์ ๋ฌ๋ฆฌ RLSRust-analyzer๋ ๊ทผ๋ณธ์ ์ผ๋ก ๋ค๋ฅธ ์ํคํ
์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์์ต๋๋ค. RLS๋ ์ ์ฒด ํ๋ก์ ํธ์์ ์ปดํ์ผ๋ฌ๋ฅผ ์คํํ๊ณ ๊ฒฐ๊ณผ์ JSON ํ์ผ์ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ๋ฐ๋ฉด, Rust-analyzer ์์ฒด๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์์ ๋ ์ฝ๋๋ฅผ ๋ถ์ํ๊ณ ํ์ฌ ์ฝ๋๋ง ์ฒ๋ฆฌํ๋ ์ปดํ์ผ ํ๋ก์ธ์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ํ์ผ์ ์ฝ๋๋ค.
์ถ์ฒ : opennet.ru