Size: a a a

2020 October 23

MF

Mattew Fleuz in Rust Beginners
John Meow
Попробуй добавить as [u8; 8]
каст возможен только на примитивных типах
источник

JM

John Meow in Rust Beginners
Mattew Fleuz
каст возможен только на примитивных типах
Ой
источник

JM

John Meow in Rust Beginners
[u8; 4]
источник

JM

John Meow in Rust Beginners
Не заметил у тебя слайс
источник

АГ

Алексей Герасимов... in Rust Beginners
Vitaliy
У меня структура A содержит поле String (изменяться не будет), а также вектор других структур, которые внутри себя будут хранить слайсы на этот String. Как такое можно провернуть?

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=f77c09319437baf1a41128cf01aa36a1
self-referential struct по-простому не делается, смотри крэйт owning_ref
источник

EG

Emmanuel Goldstein in Rust Beginners
Vitaliy
У меня структура A содержит поле String (изменяться не будет), а также вектор других структур, которые внутри себя будут хранить слайсы на этот String. Как такое можно провернуть?

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=f77c09319437baf1a41128cf01aa36a1
Можно в других структурах хранить индексы
источник

EG

Emmanuel Goldstein in Rust Beginners
А не слайсы
источник

EG

Emmanuel Goldstein in Rust Beginners
Это простой вариант
Вариант сложнее — хранить указатель и длину строки, ансейфом делать из неё слайс по месту использования
источник

EG

Emmanuel Goldstein in Rust Beginners
Ещё можно и строку, и внутренние структуры аллоцировать на арене, например, docs.rs/bumpalo
источник

IB

Ivan Boldyrev in Rust Beginners
Emmanuel Goldstein
Можно в других структурах хранить индексы
Для строк только это не очень, а так — да.
источник

EG

Emmanuel Goldstein in Rust Beginners
Ivan Boldyrev
Для строк только это не очень, а так — да.
Разверни мысль.
Из строки слайс по ренджу получается более или менее одной строчкой кода, которая транслируется в пару арифметических операций [и ветвление, но с этим без ансейфа ничего особо не сделать]
источник

IB

Ivan Boldyrev in Rust Beginners
Emmanuel Goldstein
Разверни мысль.
Из строки слайс по ренджу получается более или менее одной строчкой кода, которая транслируется в пару арифметических операций [и ветвление, но с этим без ансейфа ничего особо не сделать]
Получение адреса по индексу в строке -- O(n).  Речь идёт об индексах, а не слайсах.
источник

EG

Emmanuel Goldstein in Rust Beginners
Ivan Boldyrev
Получение адреса по индексу в строке -- O(n).  Речь идёт об индексах, а не слайсах.
С чего бы? Я имею в виду байтовый индекс, естественно.
источник

EG

Emmanuel Goldstein in Rust Beginners
O(1) — прибавляешь к указателю на начало строки оффсет
источник

M

MrSmith in Rust Beginners
какая библиотека дефакта стандарт для логирования?
источник

EG

Emmanuel Goldstein in Rust Beginners
MrSmith
какая библиотека дефакта стандарт для логирования?
docs.rs/log фронтенд
docs.rs/pretty-env-logger красивый бэкенд
docs.rs/femme два бэкенда в одном — красивый и JSON'овый
источник

EG

Emmanuel Goldstein in Rust Beginners
docs.rs/json-env-logger — JSON'овый бэкенд
источник

EG

Emmanuel Goldstein in Rust Beginners
Но он как раз не очень популярен
источник

M

MrSmith in Rust Beginners
Мне вот такое сравнение нужно https://habr.com/ru/post/313686/
источник

EG

Emmanuel Goldstein in Rust Beginners
Лицензия: MIT/Apache 2.0 для всех, кроме json-env-logger, он под MIT
Язык: Rust для всех
Обнов.: 2020 для всех
Платф.: Любые разумные для всех
Комп.: rustc для всех
Документация: docs.rs/ для всех, у всех норм, у femme похуже
Зависимости: а тебе не пофиг? Мы не в плюсах
Логирование: синхронное для всех
Контроль памяти: нет для всех
Потокобезопасность: мы в расте
Crash handling: нет для всех
Стиль логирования: log::макросы!() для всех
Инициализация: настройки в коде + env для всех
Настройка фильтрации: аналогично
Поддержка юникода: да.
Доступ к логгеру: см. стиль логирования
Ротация файлов: нет ни у кого, кажется
Точность времени: хз
Производительность: не мерил
источник