Как исключить Rust std env при воспроизведении кода подложки в IDE

#rust #jetbrains-ide #intellij-plugin #substrate

Вопрос:

Я использую среду разработки JetBrains с плагином Rust для запуска кода субстрата.

Проект подложки обычно содержит строку поверх файла:

 #![cfg_attr(not(feature = "std"), no_std)]  

Однако эта строка серая, теперь ярко-желтая, эта строка не активирована, атрибут cfg сейчас не используется. что означает, что env разработки все еще находится в env Rust std, я думаю.

Субстрат не использует библиотеку Rust std. Итак, мне интересно, можно ли настроить IDE для активации env std подложки, но не std ржавчины. Это может быть полезно для начинающих, чтобы не включать некоторые неправильные функции или библиотеки.

Комментарии:

1. Возможно, вы сможете это сделать, зайдя в Настройки -gt; Языки и фреймворки -gt;gt; Rust -gt;gt;gt; Cargo, а затем снимите флажок «Скомпилировать все цели проекта, если это возможно». Если это не сработает, выбор «Запустить внешний линтер для анализа кода на лету», вероятно, приведет к тому, что он будет немного медленнее и, возможно, потеряет некоторые другие функции. Местоположение может немного отличаться для Intellij, так как я имею в виду, где опция находится в CLion.

Ответ №1:

Субстрат не использует библиотеку Rust std.

Это неправильно, мы просто используем обычное std при компиляции для native. Он же при компиляции узла. Однако при компиляции для wasm мы отключаем std и используем no_std .

Поскольку мы std включили всегда по умолчанию, среда IDE почти никогда не будет no_std активирована. Поэтому я бы просто проигнорировал это «предупреждение».

Комментарии:

1. Да, вы правы. Я поискал в гугле несколько дней сервала. Я все еще не понимаю, как или какой код части встроен в wasm.