Блог*
rules for temporary lifetime extension are syntactic, not semantic playground about temporary lifetimes
#prog #rust хайлайты:
Это, судя по всем, пофиксили: lifetime extension теперь будет работать с конструкторами (кортежных структур и кортежных вариантов перечислений)
Это, судя по всем, пофиксили: lifetime extension теперь будет работать с конструкторами (кортежных структур и кортежных вариантов перечислений)
GitHub
Temporary lifetime extension through tuple struct and tuple variant constructors by m-ou-se · Pull Request #140593 · rust-lang/rust
This makes temporary lifetime extension work for tuple struct and tuple variant constructors, such as Some().
Before:
let a = &temp(); // Extended
let a = Some(&temp()); // Not exte...
Before:
let a = &temp(); // Extended
let a = Some(&temp()); // Not exte...
#prog #rust #rustasync #article
Unlocking Tokio's Hidden Gems: Determinism, Paused Time, and Local Execution
О менее известных фичах tokio
Unlocking Tokio's Hidden Gems: Determinism, Paused Time, and Local Execution
О менее известных фичах tokio
Pierre Zemb's Blog
Unlocking Tokio's Hidden Gems: Determinism, Paused Time, and Local Execution
Discover lesser-known Tokio features like current-thread runtimes for !Send futures, seeded runtimes for deterministic tests, and paused time for precise temporal control in your Rust applications.
#prog #rust #article
Making the rav1d Video Decoder 1% Faster
В качестве реакции на конкурс по ускорению rav1d. Как оказалось, есть парочка довольно простых изменений, которые закрывают 30% разрыва по производительности.
Making the rav1d Video Decoder 1% Faster
В качестве реакции на конкурс по ускорению rav1d. Как оказалось, есть парочка довольно простых изменений, которые закрывают 30% разрыва по производительности.
#prog #article (пожалуй, для #web наиболее актуально)
Don't Guess My Language
TL;DR: не используйте GeoIP, используйте HTTP заголовок
Don't Guess My Language
TL;DR: не используйте GeoIP, используйте HTTP заголовок
Accept-Language
.#prog #rust хайлайты:
Implement ptr::try_cast_aligned and NonNull::try_cast_aligned.
Эти методы кастуют указатели в указанный методом тип и при этом возвращают
Implement ptr::try_cast_aligned and NonNull::try_cast_aligned.
Эти методы кастуют указатели в указанный методом тип и при этом возвращают
None
, если указатель не выровнен для целевого типа. Как мне кажется, полезная вещь для низкоуровневого кода.#prog #rust #article
Старые (2016) статьи с говорящими названиями:
Counting Newlines Really Fast
Even quicker byte count
Примечательно, что оба варианта без явного SIMD, а в первой статье ещё и код полностью safe.
Старые (2016) статьи с говорящими названиями:
Counting Newlines Really Fast
Even quicker byte count
Примечательно, что оба варианта без явного SIMD, а в первой статье ещё и код полностью safe.
#prog #python #article
Новый лучший способ форматирования строк в Python
t-строки — новый вид строк в Python. Походит на format_args! в Rust в том смысле, что позволяет захватывать переменные по имени и создаёт просто шаблон со значениями переменных вместо уже форматированной строки. Как следствие, это позволяет одновременно ускорить форматирование и отделить собственно образование шаблона от его интерпретации. В статье приводится пример форматировщика SQL-запросов: он может при форматировании автоматически экранировать значения. Аналогично для шаблонизатора HTML.
Новый лучший способ форматирования строк в Python
t-строки — новый вид строк в Python. Походит на format_args! в Rust в том смысле, что позволяет захватывать переменные по имени и создаёт просто шаблон со значениями переменных вместо уже форматированной строки. Как следствие, это позволяет одновременно ускорить форматирование и отделить собственно образование шаблона от его интерпретации. В статье приводится пример форматировщика SQL-запросов: он может при форматировании автоматически экранировать значения. Аналогично для шаблонизатора HTML.
#prog #amazingopensource
miniserve — for when you really just want to serve some files over HTTP right now!
Написано на Rust, один бинарь, может отдавать не только отдельные файлы, но и директории. Ещё пачка фичей, почитайте README.
miniserve — for when you really just want to serve some files over HTTP right now!
Написано на Rust, один бинарь, может отдавать не только отдельные файлы, но и директории. Ещё пачка фичей, почитайте README.