#Rust совет: Функция .zip() для итераторов в Rust позволяет преобразовать два vec в один vec кортежей.
Однако синтаксис не такой удобный, как в Python. Но эту проблему можно хорошо решить с помощью дженериков.
#junior
@rust_code
Однако синтаксис не такой удобный, как в Python. Но эту проблему можно хорошо решить с помощью дженериков.
#junior
@rust_code
👍24❤6👎6🤡4🔥2🫡1
🦀 Rust Tip
База: e Cargo есть команда
🔧 Что делает:
- Проверяет типы и ошибки компиляции
- Пропускает генерацию кода и линковку
- Работает намного быстрее, чем
📈 Идеально, чтобы быстро отлавливать ошибки заимствования и типизации, не тратя время на полноценную сборку.
💡 Используй `
#junior #rust
@rust_code
База: e Cargo есть команда
cargo check
— и она просто must-have для быстрой разработки.🔧 Что делает:
- Проверяет типы и ошибки компиляции
- Пропускает генерацию кода и линковку
- Работает намного быстрее, чем
cargo build
📈 Идеально, чтобы быстро отлавливать ошибки заимствования и типизации, не тратя время на полноценную сборку.
💡 Используй `
cargo chec
k`, когда хочешь быстро пройти цикл "редактировать → проверить → исправить".#junior #rust
@rust_code
👍41🔥5🥰4😱2❤1💯1
🦀 #Rust Совет
Хочешь протестировать что-то быстро, не трогая
Создай файлы в директории
📦 Это удобно для:
• Быстрых экспериментов
• Мини-демо и прототипов
• Локальных тестов без влияния на основную логику
Пример:
Отличный способ держать main.rs чистым и при этом экспериментировать свободно.
#junior #rust
Хочешь протестировать что-то быстро, не трогая
main.rs
? Создай файлы в директории
examples/
внутри своего крейта — и запускай их так:
cargo run --example <имя_файла>
📦 Это удобно для:
• Быстрых экспериментов
• Мини-демо и прототипов
• Локальных тестов без влияния на основную логику
Пример:
cargo run --example my_demo
Отличный способ держать main.rs чистым и при этом экспериментировать свободно.
#junior #rust
👍57❤5🔥3🥰1🤨1
Файл build.rs можно превратить в полноценную систему сборки C-кода для Rust.
Пример ниже показывает, как собрать C-обёртку и подключить её вместе с C SDK прямо через Cargo 🦀
📌 Что это значит?
- Можно компилировать C-код и обёртки прямо из Rust-проекта
- Линковать C SDK и подключать их к Rust
- Через
println!
передавать Cargo специальные инструкции (например, какие библиотеки подключить)
/// build.rs
fn main() {
// Компилируем C-wrapper
cc::Build::new()
.file("src/rplidarx_wrapper.c")
.include("/usr/local/include")
.include("/usr/local/include/src")
.include("/usr/local/include/core")
.compile("rplidarx_wrapper");
// Линкуем обёртку
println!("cargo:rustc-link-lib=static=rplidarx_wrapper");
// Линкуем SDK устройства
println!("cargo:rustc-link-lib=rplidarx_sdk");
println!("cargo:rustc-link-lib=pthread");
println!("cargo:rustc-link-lib=stdc++");
// Путь к библиотекам (если нужен)
println!("cargo:rustc-link-search=native=/usr/local/lib");
// Пересобрать при изменении C-файла
println!("cargo:rerun-if-changed=src/rplidarx_wrapper.c");
}
📌 Эти
println!
— скрытые build-инструкции для Cargo. Таким образом, Makefile не нужен: всё управление сборкой C и Rust находится прямо в build.rs.
@rust_code
#junior #rust
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥11❤4🥰1🦄1