Size: a a a

Rust — русскоговорящее сообществo

2020 November 09

VM

Vladimir Moscow in Rust — русскоговорящее сообществo
Спасибо за помощь
источник

Э

Эрик in Rust — русскоговорящее сообществo
Vladimir Moscow
Мне не нужно объяснение в стиле "для домохозяйки". Мне достаточно увидеть файл, который "завис"
Так ты продолжаешь про файлы говорить, но файлы существуют только на этапе парсинга, а этот этап самый быстрый обычно, какое ещё объяснение, кроме как для домохозяек ты хочешь?
источник

MP

Mag Pie in Rust — русскоговорящее сообществo
Vladimir Moscow
Пофайловый прогресс можно реализовать, но тогда придётся всегда использовать собственный форк компилятора со слегка модифицированным процессом компиляции. Это не так уж и удобно
источник

Э

Эрик in Rust — русскоговорящее сообществo
Ма-а-ам, дай битков!
источник

S

Sabaun Taraki in Rust — русскоговорящее сообществo
Всем привет
Какой есть наиболее правильный способ парсить конфигурационный файл независимо от того, откуда был вызван cargo run?

Файл всегда находится в корне крэйта. Можно конечно как дополнительный аргумент командной строки прокинуть путь к конфигу, но хотелось бы без этого обойтись.
источник

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Sabaun Taraki
Всем привет
Какой есть наиболее правильный способ парсить конфигурационный файл независимо от того, откуда был вызван cargo run?

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

d

diabolo in Rust — русскоговорящее сообществo
вафель 🧇
Можно посмотреть путь до бинаря и к нему заджойнить конфиг)
я не проверял, но вроде во время компиляции в окружении доступен путь к карго-манефесту, скорее всего можно законстить)
источник

A

Alex in Rust — русскоговорящее сообществo
Sabaun Taraki
Всем привет
Какой есть наиболее правильный способ парсить конфигурационный файл независимо от того, откуда был вызван cargo run?

Файл всегда находится в корне крэйта. Можно конечно как дополнительный аргумент командной строки прокинуть путь к конфигу, но хотелось бы без этого обойтись.
Постановку вопроса неплохо бы уточнить.

> Файл всегда находится в корне крэйта

То есть речь идёт про исходники приложения, и, вероятно, какой-то дефолтный/примерочный конфиг в дереве с исходниками.

> парсить конфигурационный файл

Эта операция будет выполняться уже в рантайме, т.е. никаких исходников в общем случае уже нет. И крейта никакого нет. И пути к корню крейта тоже нет.

> откуда был вызван cargo run

Это лишь один из способов запуска приложения, но не единственный. Если нужно по какой-то причине именно для cargo run, то я бы посмотрел в сторону переменных окружения, которые карга выставляет для дочерних процессов. Но, понятно, что если сначала собрать через cargo build а потом запустить бинарь, этот способ уже не прокатит.

В общем, надо отталкиваться от задачи, которую хорошо бы конкретизировать.
источник

SL

S. L. in Rust — русскоговорящее сообществo
что значит запись Trait: system::Trait ?
источник

SL

S. L. in Rust — русскоговорящее сообществo
источник

ИЛ

Иван Лещенко... in Rust — русскоговорящее сообществo
S. L.
что значит запись Trait: system::Trait ?
Из-за коллизии имён трейт Trait из крейта system нужно либо записывать с путём, либо алиасить
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
S. L.
что значит запись Trait: system::Trait ?
Тип, реализующий Trait, должен реализовывать еще и system::Trait
источник

SL

S. L. in Rust — русскоговорящее сообществo
system: Trait дает какой-то дополнительный функционал трейту?
источник

ИЛ

Иван Лещенко... in Rust — русскоговорящее сообществo
S. L.
system: Trait дает какой-то дополнительный функционал трейту?
Даёт возможность внутри Trait использовать всё от system::Trait
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Ну и в целом это зависит от логики кода
источник

r

red75prime in Rust — русскоговорящее сообществo
S. L.
system: Trait дает какой-то дополнительный функционал трейту?
Дефолтные реализации методов Trait могут использовать методы из system::Trait
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Например Copy : Clone, потому что любой копируемый тип можно склонировать
источник

SL

S. L. in Rust — русскоговорящее сообществo
спасибо
источник

МЛ

Михаил Лёсин... in Rust — русскоговорящее сообществo
Вопрос. Есть асинхронный стрим токио который выдаёт строки (FramedRead и LinesCodec).
Есть ли какой-то способ упаковывать их в стрим который будет возвращать вектор строк, накопленых за, скажем, секунду?
источник

ИЛ

Иван Лещенко... in Rust — русскоговорящее сообществo
Михаил Лёсин
Вопрос. Есть асинхронный стрим токио который выдаёт строки (FramedRead и LinesCodec).
Есть ли какой-то способ упаковывать их в стрим который будет возвращать вектор строк, накопленых за, скажем, секунду?
https://docs.rs/tokio/0.3.3/tokio/stream/trait.StreamExt.html#method.take_while + проверка на то, что секунда ещё не прошла
источник