Оцените прошедший день
Final Results
22%
+2 (прекрасно)
25%
+1
26%
0 (нейтрально)
7%
-1
20%
-2 (ужасно)
# Implied cfg(doc)
В расте можно изменять поведение и наличие кода в зависимости от флагов компиляции. Это делается через макрос
Поскольку компилятор не может помочь, то приходится делать по старинке — через документацию. Раньше единственный вариант задокументировать такое был просто написать документацию руками:
Позже появилась фича
Правда по скольку фича найтли, а документировать надо всем, то обычно это превращается в что-то подобного плана:
Make cfg imply doc(cfg) #89596
Совсем недавно
В расте можно изменять поведение и наличие кода в зависимости от флагов компиляции. Это делается через макрос
cfg. Распространёнными юзкейсами являются платформозависимые вещи и дополнительные фичи, которые не хочется компилировать, если они не нужны.#[cfg(linux)]Хоть такой подход и позволяет сделать многое, у него есть один критический недостаток — "выключение" кода происходит на этапе AST. Из-за этого, если фича не включена, то ошибка будет просто "нет функции", а не "функция выключена из-за фичи".
fn platform_specific(...) { ... }
#[cfg(feature = "blah")]
fn blah(...) { ... }
Поскольку компилятор не может помочь, то приходится делать по старинке — через документацию. Раньше единственный вариант задокументировать такое был просто написать документацию руками:
/// Note: supported on crate feature `blah` only.Однако это неудобно, про это легко забыть, все делают это по разному и в разных местах... В общем не круто.
#[cfg(feature = "blah")]
fn blah(...) { ... }
Позже появилась фича
doc_cfg, которая позволяет делать так:#[cfg(feature = "blah")]Дублирование всё ещё есть, но по крайней мере rustdoc сам это красиво и одинакого для всех рендерит :)
#[doc(cfg(feature = "blah"))]
fn blah(...) { ... }
Правда по скольку фича найтли, а документировать надо всем, то обычно это превращается в что-то подобного плана:
#[cfg_attr(all(docsrs, feature = "nightly"), doc(cfg(feature = "blah")))]Всё ещё лучше, чем ничего, но очень бойлерплейтно и неудобно. Но и тут есть спасение!
Make cfg imply doc(cfg) #89596
Совсем недавно
cfg начал подразумевать doc(cfg), так что теперь всё что нужно сделать, для красивой доки, это включить найтли фичу doc_cfg =)GitHub
Make cfg imply doc(cfg) by GuillaumeGomez · Pull Request #89596 · rust-lang/rust
This is a reopening of #79341, rebased and modified a bit (we made a lot of refactoring in rustdoc's types so they needed to be reflected in this PR as well):
hidden_cfg is now in the Cach...
hidden_cfg is now in the Cach...
Porting Niceware to Rust
"I've been thinking about the sensation of incremental progress when programming with Rust. I come from dynamic programming land and I recently had a breakthrough with my productivity in Rust — instead of a technical challenge, I had to overcome an emotional barrier"
"I've been thinking about the sensation of incremental progress when programming with Rust. I come from dynamic programming land and I recently had a breakthrough with my productivity in Rust — instead of a technical challenge, I had to overcome an emotional barrier"
Оцените прошедший день
Final Results
12%
+2 (прекрасно)
29%
+1
25%
0 (нейтрально)
16%
-1
19%
-2 (ужасно)
Организовал свои мысли по поводу оценок дня в небольшую заметку:
https://ihatereality.space/03-a-place-to-pause/
https://ihatereality.space/03-a-place-to-pause/
ihatereality.space
Everybody need a place (and time) to pause
As you may know, I have a (russian) telegram channel. One day I had a random thought about something I could make there. Now it became a tradition...
Оцените прошедший день
Final Results
13%
+2 (прекрасно)
34%
+1
24%
0 (нейтрально)
14%
-1
14%
-2 (ужасно)
Оцените прошедший день
Final Results
15%
+2 (прекрасно)
30%
+1
24%
0 (нейтрально)
12%
-1
18%
-2 (ужасно)
Оцените прошедший день
Final Results
18%
+2 (прекрасно)
26%
+1
31%
0 (нейтрально)
8%
-1
18%
-2 (ужасно)
Forwarded from Блог*
Кстати, в #rust стабилизировали паники в const-контекстах! 🎉 Будем ждать, когда докатится до стейбла.
UPD:
UPD:
unreachable_unchecked тоже.GitHub
Stabilize `const_panic` by jhpratt · Pull Request #89508 · rust-lang/rust
Closes #51999
FCP completed in #89006
@rustbot label +A-const-eval +A-const-fn +T-lang
cc @oli-obk for review (not r?'ing as not on lang team)
FCP completed in #89006
@rustbot label +A-const-eval +A-const-fn +T-lang
cc @oli-obk for review (not r?'ing as not on lang team)
Оцените прошедший день
Final Results
17%
+2 (прекрасно)
24%
+1
28%
0 (нейтрально)
14%
-1
17%
-2 (ужасно)