Блог*
#prog #rust Если вам вдруг потребовалось сделать набор взаимоисключающих фичи, то вместо квадратичного бойлерплейта с перечислением каждой пары фич и использованием compile_error! можно сделать так: // `foo`, `bar` и `baz` взаимно исключают друг друга //…
@tyranron совершенно справедливо добавил, что ошибку можно сделать и более читаемой:
#[deny(const_err)]Но это требует наличия паники в const-контексте, что доступно только с версии 1.57, в то время как вариант с длинной массива работает даже на Rust 1.0.
const _: () = {
let n_activated = cfg!(foo) as usize + cfg!(bar) as usize + cfg!(baz) as usize;
if n_activated != 1 {
panic!("Only one of `foo`, `bar` or `baz` can be used")
}
};
Telegram
Блог*
Тем временем вышел Rust 1.57 (анонс).
tl;dr несколько заинтересовавших меня штук:
— panic!/todo!/assert! макросы в константных контекстах
— кастомные профили компиляции (как dev, release, test и bench, но произвольные)
— try_reserve методы для коллекций…
tl;dr несколько заинтересовавших меня штук:
— panic!/todo!/assert! макросы в константных контекстах
— кастомные профили компиляции (как dev, release, test и bench, но произвольные)
— try_reserve методы для коллекций…
👍4💩1
Forwarded from ozkriff.games 🦀 (ozkriff🇺🇦)
# godbolt.org's LLVM Opt Pipeline View
Not exactly fresh news but it turns out that Compiler Explorer got an amazing feature last year: ability to step through the individual LLVM optimization passes and see what exact effect it has on your code sample. 🤯
Example: https://rust.godbolt.org/z/46P8MP3x1
Not exactly fresh news but it turns out that Compiler Explorer got an amazing feature last year: ability to step through the individual LLVM optimization passes and see what exact effect it has on your code sample. 🤯
Example: https://rust.godbolt.org/z/46P8MP3x1
👍12🔥3🤯1💩1
Forwarded from местный датасасер ☮️
👋 Привет! Я сделал бота, который умеет искать сохраненные мемы в инлайн-режиме — Memeries Bot.
Как это работает: присылаете боту картинку с текстом, он ее сохраняет и распознает на ней текст с помощью OCR-модели. Теперь эту картинку можно искать в инлайн-режиме по тексту, что был на ней. Бот поддерживает мемы на русском и английском, с другими языками — как повезет 😃
Попробовать можно тут: @memeries_bot
Идея поиска мемов по тексту у меня была давно, но сделать бота руки дошли только сейчас. Кстати, идея с инлайн-режимом появилась благодаря этому проекту и советам @Loskirs
Как это работает: присылаете боту картинку с текстом, он ее сохраняет и распознает на ней текст с помощью OCR-модели. Теперь эту картинку можно искать в инлайн-режиме по тексту, что был на ней. Бот поддерживает мемы на русском и английском, с другими языками — как повезет 😃
Попробовать можно тут: @memeries_bot
Идея поиска мемов по тексту у меня была давно, но сделать бота руки дошли только сейчас. Кстати, идея с инлайн-режимом появилась благодаря этому проекту и советам @Loskirs
👍4💩1
Forwarded from Segment@tion fault
Конец популярного крейта once_cell.
Потому что once_cell больше не отдельный крейт, а официально ушел в std. С чем его поздравляем, ура.
https://github.com/rust-lang/rust/pull/105587
Потому что once_cell больше не отдельный крейт, а официально ушел в std. С чем его поздравляем, ура.
https://github.com/rust-lang/rust/pull/105587
GitHub
Partial stabilization of `once_cell` by tgross35 · Pull Request #105587 · rust-lang/rust
This PR aims to stabilize a portion of the once_cell feature:
core::cell::OnceCell
std::cell::OnceCell (re-export of the above)
std::sync::OnceLock
This will leave LazyCell and LazyLock unstabili...
core::cell::OnceCell
std::cell::OnceCell (re-export of the above)
std::sync::OnceLock
This will leave LazyCell and LazyLock unstabili...
👍19🎉9🤯3🔥1💩1
Forwarded from 🇺🇦 Go performance channel (Oleg Kovalov)
We are now using Swissmap, a new @golang hash table based on SwissTable that is faster and uses less memory than Golang's built-in map.
This blog by @AndyArt58355407 covers the motivation, design, and implementation of SwissMap for Dolt.
https://dolthub.com/blog/2023-03-28-swiss-map/
This blog by @AndyArt58355407 covers the motivation, design, and implementation of SwissMap for Dolt.
https://dolthub.com/blog/2023-03-28-swiss-map/
Dolthub
SwissMap: A smaller, faster Golang Hash Table
Initial release of SwissMap, a Golang port of Abseil's flat_hash_map.
🔥3💩1