diff options
Diffstat (limited to 'files/ru/webassembly/rust_to_wasm/index.html')
-rw-r--r-- | files/ru/webassembly/rust_to_wasm/index.html | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/files/ru/webassembly/rust_to_wasm/index.html b/files/ru/webassembly/rust_to_wasm/index.html index 629987ff09..381d424bf0 100644 --- a/files/ru/webassembly/rust_to_wasm/index.html +++ b/files/ru/webassembly/rust_to_wasm/index.html @@ -22,7 +22,7 @@ translation_of: WebAssembly/Rust_to_wasm <h2 id="Настройка_окружения_Rust">Настройка окружения Rust</h2> -<p>Давайте пройдемся по всем пунктам, необходимым для настройки нашего окружения.</p> +<p>Давайте пройдёмся по всем пунктам, необходимым для настройки нашего окружения.</p> <h3 id="Установка_Rust">Установка Rust</h3> @@ -55,12 +55,12 @@ Password: Email: (this IS public) you@example.com </code></pre> -<p>Вам понадобится ввести свое пользовательское имя, пароль и email. Если все получится, вы увидите:</p> +<p>Вам понадобится ввести своё пользовательское имя, пароль и email. Если все получится, вы увидите:</p> <pre class="brush: bash notranslate"><code>Logged in as yournpmusername on https://registry.npmjs.org/. </code></pre> -<p>Если что-то пойдет не так, свяжитесь с командой npm, чтобы разобраться.</p> +<p>Если что-то пойдёт не так, свяжитесь с командой npm, чтобы разобраться.</p> <h2 id="Создание_WebAssembly_npm-пакета">Создание WebAssembly npm-пакета</h2> @@ -111,7 +111,7 @@ pub fn greet(name: &str) { } </code></pre> -<p>Это содержимое нашего проекта на Rust. У него есть три основные части, давайте пройдемся по ним по очереди. Мы дадим здесь обобщенное пояснение и поясним некоторые детали; чтобы узнать больше о Rust, пожалуйста, просмотрите бесплатную online-книгу <a href="https://doc.rust-lang.org/book/">The Rust Programming Language</a>.</p> +<p>Это содержимое нашего проекта на Rust. У него есть три основные части, давайте пройдёмся по ним по очереди. Мы дадим здесь обобщённое пояснение и поясним некоторые детали; чтобы узнать больше о Rust, пожалуйста, просмотрите бесплатную online-книгу <a href="https://doc.rust-lang.org/book/">The Rust Programming Language</a>.</p> <h4 id="Использование_wasm-bindgen_для_коммуникации_между_Rust_и_JavaScript">Использование <code>wasm-bindgen</code> для коммуникации между Rust и JavaScript</h4> @@ -144,13 +144,13 @@ extern { } </code></pre> -<p>Частичка внутри <code>#[]</code> называется "атрибутом", и она кое-как модифицирует следующее за ней утверждение. В нашем случае, это утверждение <code>extern</code>, которое говорит Rust-у, что мы хотим вызвать некоторую функцию, определенную во внешнем пространстве. Атрибут говорит: "wasm-bindgen знает, как найти эти функции".</p> +<p>Частичка внутри <code>#[]</code> называется "атрибутом", и она кое-как модифицирует следующее за ней утверждение. В нашем случае, это утверждение <code>extern</code>, которое говорит Rust-у, что мы хотим вызвать некоторую функцию, определённую во внешнем пространстве. Атрибут говорит: "wasm-bindgen знает, как найти эти функции".</p> <p>Третья строка это имя функции, написанной на Rust. Она говорит: "функция <code>alert</code> принимает один аргумент, строку с именем <code>s</code>."</p> <p>У вас, возможно, есть предположение, что это за функция, и, возможно, ваше предположение верное: это функция<a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/alert"> <code>alert</code>, предоставляемая JavaScript</a>! Мы будем вызывать эту функцию в следующей секции.</p> -<p>Когда бы вы не захотели вызвать новую функцию JavaScript, вы можете написать ее здесь, и <code>wasm-bindgen</code> позаботится о том, чтобы настроить все для вас. Пока еще поддерживается не все, но мы работаем над этим! Пожалуйста, <a href="https://github.com/rustwasm/wasm-bindgen/issues/new">сообщайте о проблемах</a>, если что-то было упущено.</p> +<p>Когда бы вы не захотели вызвать новую функцию JavaScript, вы можете написать её здесь, и <code>wasm-bindgen</code> позаботится о том, чтобы настроить все для вас. Пока ещё поддерживается не все, но мы работаем над этим! Пожалуйста, <a href="https://github.com/rustwasm/wasm-bindgen/issues/new">сообщайте о проблемах</a>, если что-то было упущено.</p> <h4 id="Создание_функций_Rust_который_может_вызывать_JavaScript">Создание функций Rust, который может вызывать JavaScript</h4> @@ -162,15 +162,15 @@ pub fn greet(name: &str) { } </code></pre> -<p>Еще раз, мы видим <code>#[wasm_bindgen]</code> атрибут. В этом случае, он модифицирует не блок <code>extern</code>, а <code>fn</code>; это значит, что мы хотим, чтобы эта функция на Rust была доступна для JavaScript. Прямо противоположно <code>extern</code>: это не те функции, которые нам нужны, а те, что мы предоставляем миру!</p> +<p>Ещё раз, мы видим <code>#[wasm_bindgen]</code> атрибут. В этом случае, он модифицирует не блок <code>extern</code>, а <code>fn</code>; это значит, что мы хотим, чтобы эта функция на Rust была доступна для JavaScript. Прямо противоположно <code>extern</code>: это не те функции, которые нам нужны, а те, что мы предоставляем миру!</p> -<p>Наша функция называется <code>greet</code>, и она принимает один аргумент, строку (пишется <code>&str</code>), <code>name</code>. Затем она вызывает функцию <code>alert</code>, которую мы запросили в блоке <code>extern</code> выше. Она передает вызов макросу <code>format!</code>, который позволяет нам соединить строки.</p> +<p>Наша функция называется <code>greet</code>, и она принимает один аргумент, строку (пишется <code>&str</code>), <code>name</code>. Затем она вызывает функцию <code>alert</code>, которую мы запросили в блоке <code>extern</code> выше. Она передаёт вызов макросу <code>format!</code>, который позволяет нам соединить строки.</p> -<p><code>format!</code> принимает два аргумента в нашем случае: форматируемую строку и переменную, которую должен в нее поместить. Форматируемая строка это <code>"Hello, {}!"</code> часть. Она содержит <code>{}</code>, куда будет вставлена переменная. Переменная, которую мы передаем, это <code>name</code>, аргумент функции, так что если мы вызовем <code>greet("Steve")</code>, то увидим <code>"Hello, Steve!".</code></p> +<p><code>format!</code> принимает два аргумента в нашем случае: форматируемую строку и переменную, которую должен в неё поместить. Форматируемая строка это <code>"Hello, {}!"</code> часть. Она содержит <code>{}</code>, куда будет вставлена переменная. Переменная, которую мы передаём, это <code>name</code>, аргумент функции, так что если мы вызовем <code>greet("Steve")</code>, то увидим <code>"Hello, Steve!".</code></p> -<p>Все это передается в <code>alert()</code>, так что когда мы вызовем функцию, мы увидим алерт с "Hello, Steve!" внутри него!</p> +<p>Все это передаётся в <code>alert()</code>, так что когда мы вызовем функцию, мы увидим алерт с "Hello, Steve!" внутри него!</p> -<p>Теперь, когда наша библиотека написана, давайте соберем ее.</p> +<p>Теперь, когда наша библиотека написана, давайте соберём ее.</p> <h3 id="Компиляция_кода_в_WebAssembly">Компиляция кода в WebAssembly</h3> @@ -199,7 +199,7 @@ wasm-bindgen = "0.2" <h3 id="Сборка_пакета">Сборка пакета</h3> -<p>Теперь, когда мы все установили, давайте соберем проект! Введите это в терминале:</p> +<p>Теперь, когда мы все установили, давайте соберём проект! Введите это в терминале:</p> <pre class="brush: bash notranslate"><code class="shell language-shell">$ wasm-pack build --scope mynpmusername </code></pre> @@ -209,8 +209,8 @@ wasm-bindgen = "0.2" <ol> <li>Компилирует ваш Rust-код в WebAssembly.</li> <li><code><font face="Arial, x-locale-body, sans-serif"><span style="background-color: #ffffff;">Запускает </span></font>wasm-bindgen</code> с этим WebAssembly, генерируя JavaScript файл, который оборачивает WebAssembly файл в модуль. который может понять npm.</li> - <li>Создает папку <code>pkg</code>, куда перемещает этот JavaScript файл и ваш код WebAssembly.</li> - <li>Читает ваш <code>Cargo.toml</code> и создает эквивалентный <code>package.json</code>.</li> + <li>Создаёт папку <code>pkg</code>, куда перемещает этот JavaScript файл и ваш код WebAssembly.</li> + <li>Читает ваш <code>Cargo.toml</code> и создаёт эквивалентный <code>package.json</code>.</li> <li>Копирует ваш <code>README.md</code> (если есть) в пакет.</li> </ol> @@ -232,7 +232,7 @@ $ npm publish --access=public <h2 id="Использование_пакета_в_web">Использование пакета в web</h2> -<p>Давайте создадим сайт, который будет использовать наш пакет! Многие пользуются пакетами npm с помощью разных сборщиков, и мы будем использовать один из них, <code>webpack</code>, в этом руководстве. Он только немного более усложненный, но описывает более реалистичный вариант использования.</p> +<p>Давайте создадим сайт, который будет использовать наш пакет! Многие пользуются пакетами npm с помощью разных сборщиков, и мы будем использовать один из них, <code>webpack</code>, в этом руководстве. Он только немного более усложнённый, но описывает более реалистичный вариант использования.</p> <p>Давайте выйдем из нашей папки <code>pkg</code> и создадим новую, <code>site</code>, чтобы попробовать в ней следующее:</p> @@ -258,7 +258,7 @@ $ cd site } </code></pre> -<p>Заметьте, что вам нужно ввести свое пользовательское имя после <code>@</code> в секции зависимостей.</p> +<p>Заметьте, что вам нужно ввести своё пользовательское имя после <code>@</code> в секции зависимостей.</p> <p>Дальше нам нужно сконфигурировать Webpack. Создайте <code>webpack.config.js</code> и введите следующее:</p> @@ -297,7 +297,7 @@ js.then(js => { <p>Заметьте, что вам нужно будет снова ввести ваше имя для npm.</p> -<p>Так мы импортируем наш модуль из папки <code>node_modules</code>. Это не считается лучшей практикой, но это пример, так что пока сойдет. Как только файл загрузится, он вызовет функцию <code>greet</code> из этого модуля, передав <code>"WebAssembly"</code>, как строку. Обратите внимание, что здесь нет ничего особенного, и все же мы вызываем код на Rust! Насколько JavaScript код может судить, это просто обычный модуль.</p> +<p>Так мы импортируем наш модуль из папки <code>node_modules</code>. Это не считается лучшей практикой, но это пример, так что пока сойдёт. Как только файл загрузится, он вызовет функцию <code>greet</code> из этого модуля, передав <code>"WebAssembly"</code>, как строку. Обратите внимание, что здесь нет ничего особенного, и все же мы вызываем код на Rust! Насколько JavaScript код может судить, это просто обычный модуль.</p> <p>Мы закончили! Давайте попробуем:</p> |