Size: a a a

2020 December 20

E

Eugene in Rust Beginners
Иван Лещенко
1.0 уже 5 лет
это много?
источник

НТ

Никита Тыманович... in Rust Beginners
Eugene
сомневаюсь: это сейчас так кажется, что это сложно, но это из-за того, что rust относительно недавно появился
Ну тут скорее вопрос концепции): лайфтаймы ставят, чтобы ограничить код пользователя, а если по коду пользователя ставить лайфтаймы, то что они будут ограничивать )?
источник

AL

Andrey @ozkriff Lesn... in Rust Beginners
Eugene
если опытный rust-разработчик вручную может правильно расставить метки лайфтаймов, значит, это можно будет автоматизировать
замени "метки лайфтаймов" на "типы данных". опытный разработчик тоже может выбрать u8 ему тут нужен или i32 в публичной функции
источник

ИЛ

Иван Лещенко... in Rust Beginners
Eugene
это много?
Ещё учитываем компилятор на окамле, и будет много
источник

E

Eugene in Rust Beginners
Иван Лещенко
Ещё учитываем компилятор на окамле, и будет много
много в сравнении с чем?
источник

E

Eugene in Rust Beginners
Andrey @ozkriff Lesnikóv
замени "метки лайфтаймов" на "типы данных". опытный разработчик тоже может выбрать u8 ему тут нужен или i32 в публичной функции
есть я.п., которые в runtime выводят типы данных; разве невозможно в будущем автоматизировать расстановку лайфтаймов?
источник

AL

Andrey @ozkriff Lesn... in Rust Beginners
Eugene
есть я.п., которые в runtime выводят типы данных; разве невозможно в будущем автоматизировать расстановку лайфтаймов?
выводимые в рантайме времена жизни это, эм, gc
источник

ИЛ

Иван Лещенко... in Rust Beginners
Eugene
есть я.п., которые в runtime выводят типы данных; разве невозможно в будущем автоматизировать расстановку лайфтаймов?
Ты можешь юзать Arc, и платить в рантайме
источник

E

Eugene in Rust Beginners
когда-то было нужно вручную памятью управлять(я.п. C), но потом появилась RAII-концепция;
в rust же не надо вручную везде и всюду писать malloc/free
источник

E

Eugene in Rust Beginners
на данный момент rust-компилятор может расставить метки лайфтаймов в простых случаях
источник

AL

Andrey @ozkriff Lesn... in Rust Beginners
так.

1) возможен вывод статических ВЖ для приватных кусков кода, когда все их использование заранее известно, аналогично с просто выводом статических типов.

но тут есть важный нюанс: скорее всего, этого делать не стоит из-за проблемы хрупких сигнатур (т.е. ломающихся неожиданными способами из-за несущественных на первый взгляд изменений клиентских вызовов - см почему во всяких хаскелях считается хорошим тоном указывать сигнатуры функций, хоть они и не обязательны).

ровно по этой причине, в расте функции требуют явного указания типов, хотя для замыканий (существующих в коротком локальнном контексте) типы выводятся.

2) автовывод статических ВЖ для публичных интерфейсов невозможен в приницпе, потому что мы по определению не знаем всех примеров использования
источник

AT

Alexander T in Rust Beginners
юзаю log. одна из зависимостей спамит ивентами, часть из которых мне нужны, часть - нет. как проще всего отфильтровать ненужные ивенты?
источник

AL

Andrey @ozkriff Lesn... in Rust Beginners
Alexander T
юзаю log. одна из зависимостей спамит ивентами, часть из которых мне нужны, часть - нет. как проще всего отфильтровать ненужные ивенты?
какой бекенд для логов используется? для docs.rs/env_logger есть примеры фильтрации по уровням, крейтам-модулям + регуляркам
источник

AT

Alexander T in Rust Beginners
pretty_env_logger
источник

AL

Andrey @ozkriff Lesn... in Rust Beginners
> This crate uses env_logger internally, so the same ways of enabling logs through an environment variable are supported.

тогда ссылка выше должна помочь
источник

AT

Alexander T in Rust Beginners
Andrey @ozkriff Lesnikóv
> This crate uses env_logger internally, so the same ways of enabling logs through an environment variable are supported.

тогда ссылка выше должна помочь
ага, увидел тоже, спасибо.
источник

AT

Alexander T in Rust Beginners
блин, регулярки плохо справляются с задачей “строка не равна Х”
источник

AL

Andrey @ozkriff Lesn... in Rust Beginners
Alexander T
блин, регулярки плохо справляются с задачей “строка не равна Х”
источник

AT

Alexander T in Rust Beginners
я нашел какой-то модуль filter с методом enabled, который по метадате ивента отдает булеан, попробую пока с ним, регулярки в энве это страшно)
источник

SK

Sugata KZS in Rust Beginners
Добрый день, эээ, у меня совсем глупый вопрос наверное, но я не нашел на него ответа ;/
В общем, у меня  макрос !panic вызывает непонятную ошибку 101, и я не могу разобраться в чём именно дело.
Всё на скриншотах
источник