Forwarded from sad dev diary
crap, why didn't I use it before. Great tool for rapid prototyping
JSON to {programming_language} data type / YAML / MYSQL table / etc. converter
https://transform.tools/json-to-rust-serde
#programming #useful_websites
JSON to {programming_language} data type / YAML / MYSQL table / etc. converter
https://transform.tools/json-to-rust-serde
#programming #useful_websites
transform.tools
JSON to Rust Serde
An online REPL for converting JSON to Rust Serde Structs.
Блог*
Photo
В частности.
Вот есть git — одна из самых широко используемых систем контроля версий (не в последнюю очередь благодаря Github, но всё же). git в состоянии записывать в коммитах факт переименования файла. Но просто переименование файла не сработает, даже если не менять его содержимого — в этом случае в истории будет удаление старого файла и создание нового. Для вменяемой истории нужно использовать
Спасибо, очень удобно (нет).
Вот есть git — одна из самых широко используемых систем контроля версий (не в последнюю очередь благодаря Github, но всё же). git в состоянии записывать в коммитах факт переименования файла. Но просто переименование файла не сработает, даже если не менять его содержимого — в этом случае в истории будет удаление старого файла и создание нового. Для вменяемой истории нужно использовать
git mv old_file new_file
.Спасибо, очень удобно (нет).
🤡14👎4🤔4👍1😢1
Forwarded from ☕️ Мерлин заваривает τσάι 🐌
Я так люблю, когда программисты оптимизируют количество нажатий клавиш. Подозреваю, что сэкономленное время они тратят на саморазвитие
❤19😁4👍1🔥1
#prog #rust #rustreleasenotes
Вышла версия Rust 1.72.0! Как обычно, тут только то, что интересует меня, а полный ченджлог тут.
▪️Офигенно полезная вещь: компилятор теперь говорит о том, что имена не определены из-за того, что определяющий их код находится под неактивным
▪️Компилятор теперь не имеет ограничения на время вычисления const fn (технически ограничено включённым по умолчанию линтом, но его можно и отключить). При этом он всё ещё выдаёт предупреждения, если код из-за этого долго компилируется, но интервал между ними удваивается после каждого вывода, чтобы не спамить в консоль.
▪️Несколько линтов из Clippy втащили в компилятор, а именно:
🔹undropped_manually_drops (warn по умолчанию) — попытка явно дропнуть
🔹invalid_utf8_in_unchecked — разделив при этом на две:
🔹cmp_nan как invalid_nan_comparisons (warn по умолчанию) — явное сравнение с NaN (такое сравнение всегда возвращает ложь)
🔹cast_ref_to_mut — при кастах из
▪️Для указания трейт-объектов теперь не нужно выписывать ассоциированные типы, на которых есть ограничение
▪️Отправляющая половинка mpsc-канала из std наконец-то реализует
▪️Уточнено поведение
▪️Как я уже говорил,
▪️Опять-таки, как я уже рассказывал,
▪️Стабилизирован
Вышла версия Rust 1.72.0! Как обычно, тут только то, что интересует меня, а полный ченджлог тут.
▪️Офигенно полезная вещь: компилятор теперь говорит о том, что имена не определены из-за того, что определяющий их код находится под неактивным
#[cfg]
.▪️Компилятор теперь не имеет ограничения на время вычисления const fn (технически ограничено включённым по умолчанию линтом, но его можно и отключить). При этом он всё ещё выдаёт предупреждения, если код из-за этого долго компилируется, но интервал между ними удваивается после каждого вывода, чтобы не спамить в консоль.
▪️Несколько линтов из Clippy втащили в компилятор, а именно:
🔹undropped_manually_drops (warn по умолчанию) — попытка явно дропнуть
ManuallyDrop
.🔹invalid_utf8_in_unchecked — разделив при этом на две:
🔸invalid_utf8_in_unchecked
(deny по умолчанию) при вызове std::str::from_utf8_unchecked{, _mut}
на невалидном UTF-8 — это всегда неопределённое поведение🔸invalid_from_utf8
(warn по умолчанию) при вызове std::str::from_utf8{, _mut}
на невалидном UTF-8 — такой вызов всегда возвращает ошибку🔹cmp_nan как invalid_nan_comparisons (warn по умолчанию) — явное сравнение с NaN (такое сравнение всегда возвращает ложь)
🔹cast_ref_to_mut — при кастах из
&T
в &mut T
. allow по умолчанию, но исключительно из-за наличия false positive, к следующему релизу планируют сделать уже deny по умолчанию.▪️Для указания трейт-объектов теперь не нужно выписывать ассоциированные типы, на которых есть ограничение
Self: Sized
. Это консистентно с where Self: Sized
на методах, наличие которых не влияет на object safety, но которые нельзя вызвать на трейт-объектах. Отмечу, что указывать остальные типы для трейт-объектов всё также надо.▪️Отправляющая половинка mpsc-канала из std наконец-то реализует
Sync
.▪️Уточнено поведение
HashSet::insert
: если ключ уже есть в множестве, то он не заменяется, а переданный ключ дропается.▪️Как я уже говорил,
select_nth_unstable
теперь имеет реальную задокументированную линейную сложность.▪️Опять-таки, как я уже рассказывал,
ptr_eq
на счётчиках ссылок теперь сравнивает лишь адреса.▪️Стабилизирован
impl TryFrom<&OsStr> for &str
▪️В const-контексте теперь можно использовать CStr::from_bytes_with_nul, CStr::to_bytes, CStr::to_bytes_with_nul и CStr::to_str.👍8🔥2
Некоторые говорят писать
unsigned int
, большинство говорят писать просто unsigned
, я же говорю писать на Rust👌11😁6
Интересные мысли о том, как можно было "дописать" древнегреческую мифологию
https://t.iss.one/figaning_ideas/2438
https://t.iss.one/figaning_ideas/2438
Telegram
Офигительные идеи🦄
(Можете читать с жирного капса, там весело, а тут всё прелюдия.)
В греческой мифологии много меньше, чем в иных известных, какой-то борьбы добра со злом (или иных сходных начал), эсхатологии, "эпического итога", чего-то такого. Для сравнения. В скандинавской…
В греческой мифологии много меньше, чем в иных известных, какой-то борьбы добра со злом (или иных сходных начал), эсхатологии, "эпического итога", чего-то такого. Для сравнения. В скандинавской…
Вечерний Даня (danya.ru)
Погодите, это правильные пчелы? Или неправильные?
Напоминает спиральный рост кристаллов. И причина, видимо, схожая: винтовая дислокация решётки (атомов кристалла и отдельных сот соответственно)
🙏4🤡1