Rust
8.59K subscribers
487 photos
42 videos
3 files
1.02K links
Rust programming language

По всем вопросам- @workakkk

#VRHSZ
Download Telegram
Syn 3.0: крупное обновление парсера Rust

Спустя три года после Syn 2.0 библиотека обновила синтаксическое дерево под новые и экспериментальные возможности Rust: generator blocks, for await, function delegation, pattern types, function contracts, super let, postfix keywords и другие конструкции.

Изменения

* Type::BareFn переименован в Type::FnPtr;
* добавлены структуры *Modifiers для будущего расширения синтаксиса;
* unsafe теперь представлен enum Safety;
* атрибуты сохраняются во всех выражениях;
* изменены API для паттернов, generics, указателей и Punctuated.

https://github.com/dtolnay/syn/releases/tag/3.0.0
👍13🔥54
«Никогда не используйте unsafe в Rust»

Есть решение проще: писать C прямо внутри Rust, ведь там unsafe включён по умолчанию.

Библиотека c_macro позволяет вставлять C-код через макрос c!, компилировать его вместе с проектом и вызывать как обычную функцию:

let sum = sum_array(array.as_ptr() as *mut c_int, array.len() as c_int);

В примере массив создаётся в Rust, указатель передаётся в C, а сумма возвращается обратно.

Без unsafe-блока в коде. Технически безопаснее от этого, конечно, не стало.
💊35😁17🔥53🥰1🙈1