Copy vs Clone в Rust: почему использование одногр почти не ест ресурсы а другое может стоить вам дорого
В Rust
Но разница принципиальная.
Вы передали
С
Самый понятный пример -
Если бы Rust просто скопировал байты самой структуры
Поэтому
Главная мысль простая:
Поэтому в Rust
В Rust
Copy и `Clone` часто воспринимают как одно и то же: «ну, просто сделать копию».Но разница принципиальная.
Copy - это когда значение можно безопасно продублировать как набор байтов. Без вызова кода, без выделения памяти, без скрытой логики. Поэтому u32, bool, char, f64 и другие простые типы спокойно копируются автоматически.Вы передали
u32 в функцию - старое значение осталось доступно. Rust просто скопировал число.С
Clone другая история.Clone означает: «создай новое значение такого же типа». А как именно это сделать, решает сам тип. Иногда это тоже дешево. Но иногда clone() запускает полноценную работу: выделяет память, копирует данные, пересобирает внутреннюю структуру.Самый понятный пример -
String.Если бы Rust просто скопировал байты самой структуры
String, мы получили бы два владельца одного и того же буфера в памяти. Это сломало бы модель владения.Поэтому
String::clone() создает новый буфер и копирует туда текст. Это уже не бесплатная операция.Главная мысль простая:
Copy - для типов, которые можно безопасно копировать как байты.Clone - для типов, которым может понадобиться настоящая работа, чтобы создать независимую копию.Поэтому в Rust
clone() в коде стоит замечать. Не паниковать, но понимать: здесь может быть цена.🔥15❤7👍6🗿5🥰1🤗1
Вышел RustRover 2026.1.2.
Главное исправление - IDE теперь корректно разбирает комментарии, которые начинаются с
Да, тот самый случай, когда валидный Rust-код мог подсвечиваться как ошибочный просто из-за лишнего слеша в комментарии. Код нормальный, компилятор не ругается, а IDE показывает false positive и заставляет искать проблему там, где её нет.
В обновлении также поправили:
- несколько других ложных ошибок
- вывод типов
- стабильность IDE
Обновление небольшое, но полезное.
Скачать:
https://jetbrains.com/rust/download/
Главное исправление - IDE теперь корректно разбирает комментарии, которые начинаются с
////.Да, тот самый случай, когда валидный Rust-код мог подсвечиваться как ошибочный просто из-за лишнего слеша в комментарии. Код нормальный, компилятор не ругается, а IDE показывает false positive и заставляет искать проблему там, где её нет.
В обновлении также поправили:
- несколько других ложных ошибок
- вывод типов
- стабильность IDE
Обновление небольшое, но полезное.
Скачать:
https://jetbrains.com/rust/download/
👍16🖕16😁7❤5🔥5🤣3🤬1🎉1🍾1
Репозиторий для системной подготовки к собеседованиям по Rust на позиции middle, senior и staff.
Внутри 100 реальных вопросов с собеседований в продуктовых и инфраструктурных компаниях, подробные разборы с примерами кода и сценарии задач, которые встречаются в продакшене. Не «угадай вывод программы», а механика, на которой строятся настоящие сервисы.
Здесь lock-free структуры, self-referential типы в async, FFI с тензорными библиотеками, корректный Send на гардах через await, memory ordering под loom, soundness кастомных коллекций. И при этом все начинается с базы. Владение, заимствование, лайфтаймы. Кто хочет, может зайти и с нуля, и с уровня staff
https://github.com/Develp10/rustinterviewquiestions
Please open Telegram to view this post
VIEW IN TELEGRAM
❤24👍5🔥4🥰1🖕1🤗1
Если нужно написать Kubernetes controller, стоит посмотреть на
kube-rs.• типизированные Kubernetes API
• описание состояний через
enum и sum types • явную обработку ошибок
• меньше runtime-сюрпризов
• отсутствие `nil`-крашей
• более строгую модель для reconciliation-логики
Rust помогает перенести часть проверок в компилятор и сделать поведение контроллера более предсказуемым.
GitHub: https://github.com/kube-rs/kube
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥11❤5👍3🥰1🤗1
Репозиторий для системной подготовки к собеседованиям по Rust на позиции middle, senior и staff.
Внутри 100 реальных вопросов с собеседований в продуктовых и инфраструктурных компаниях, подробные разборы с примерами кода и сценарии задач, которые встречаются в продакшене. Не «угадай вывод программы», а механика, на которой строятся настоящие сервисы.
Здесь lock-free структуры, self-referential типы в async, FFI с тензорными библиотеками, корректный Send на гардах через await, memory ordering под loom, soundness кастомных коллекций. И при этом все начинается с базы. Владение, заимствование, лайфтаймы. Кто хочет, может зайти и с нуля, и с уровня staff
https://github.com/Develp10/rustinterviewquiestions
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5❤3🥰2🖕1🤗1
Rust-приложение, которое превращает скучный терминал в живой dashboard
Splashboard - это splash screen для терминала, написанный на Rust. Открываешь новый shell - и вместо пустого экрана видишь контекст по проекту.
Он может показывать Git-статус, состояние CI, открытые PR, contribution heatmap и даже фазу Луны. Да, зачем-то это тоже есть.
Главная фишка в DX: репозиторий сам может описать свой dashboard через один
Под капотом Rust и
Вот так выглядит нормальный zero-overhead DX: не ещё одна тяжёлая панель в браузере, а быстрый TUI прямо там, где разработчик и так живёт - в терминале.
🔗 http://github.com/unhappychoice/splashboard
#Rust #RustLang #CLI #TerminalTools #OpenSource #DeveloperTools #TUI #Ratatui #Rustacean
Splashboard - это splash screen для терминала, написанный на Rust. Открываешь новый shell - и вместо пустого экрана видишь контекст по проекту.
Он может показывать Git-статус, состояние CI, открытые PR, contribution heatmap и даже фазу Луны. Да, зачем-то это тоже есть.
Главная фишка в DX: репозиторий сам может описать свой dashboard через один
dashboard.toml. Заходишь в папку проекта через cd - и терминал сразу подхватывает нужный контекст без флагов, ручной настройки и лишней возни.Под капотом Rust и
ratatui, работает кроссплатформенно, пакет доступен на crates.io.Вот так выглядит нормальный zero-overhead DX: не ещё одна тяжёлая панель в браузере, а быстрый TUI прямо там, где разработчик и так живёт - в терминале.
🔗 http://github.com/unhappychoice/splashboard
#Rust #RustLang #CLI #TerminalTools #OpenSource #DeveloperTools #TUI #Ratatui #Rustacean
👍25❤4🥰2🥴1