Блог*
Открыть в Telegram
Блог со звёздочкой. Много репостов, немножко программирования. Небольшое прикольное комьюнити: @decltype_chat_ptr_t Автор: @insert_reference_here
Больше1 922
Подписчики
-324 часа
-57 дней
-1330 день
Архив постов
1 922
Спустя почти два года у меня наконец дошли руки действительно посмотреть это видео. Спасибо, Илья, это действительно офигенно.
1 922
#prog #rust #article
Iterating on Testing in Rust
Или о том, что не так с тестированием в Rust и что можно с этим сделать.
1 922
Оказывается, подобный подход используется в ena — реализации union-find, используемой в rustc. Вот вам и практический пример.
1 922
#prog #algo
Немного о том, почему xor — фиговая функция для комбинирования хешей.
https://stackoverflow.com/a/27952689
1 922
#prog #rust
Пусть есть такой код:
f
n main() {
let ptr: *const u32 = std::ptr::null();
let a = ptr + 5;
let b = ptr[3];
}
Он не компилируется, так как в Rust нет арифметики указателей с синтаксисом плюсов и квадратных скобок:
error[E0369]: cannot add `{integer}` to `*const u32`
--> src/main.rs:3:17
|
3 | let a = ptr + 5;
| --- ^ - {integer}
| |
| *const u32
error[E0608]: cannot index into a value of type `*const u32`
--> src/main.rs:4:13
|
4 | let b = ptr[3];
| ^^^^^^
После этого PR rustc теперь предлагает соответствующие методы:
error[E0369]: cannot add `{integer}` to `*const u32`
--> src/main.rs:3:17
|
3 | let a = ptr + 5;
| --- ^ - {integer}
| |
| *const u32
|
help: consider using `wrapping_add` or `add` for pointer + {integer}
|
3 | let a = ptr.wrapping_add(5);
| ~~~~~~~~~~~~~~ +
error[E0608]: cannot index into a value of type `*const u32`
--> src/main.rs:4:13
|
4 | let b = ptr[3];
| ^^^^^^
|
help: consider using `wrapping_add` or `add` for indexing into raw pointer
|
4 | let b = ptr.wrapping_add(3);
| ~~~~~~~~~~~~~~ ~
Уже доступно! Исследование Telegram 2025 — ключевые инсайты года 
