Size: a a a

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

2020 August 26

SS

Slava Sokolovsky in Rust — русскоговорящее сообществo
JeisonWi Garrison
cargo build --force?
неа
источник

ВВ

Вадим Великодный... in Rust — русскоговорящее сообществo
Насколько я понимаю, cargo, как и make просто пересобирает исходники, у которых дата позже, чем у бинарника. Изменение переменной окружения даты не меняет, потому и пересборки нет.
Я проверил, если выполнить touch, то пересобирает.
источник

Ct

Casual tears in Rust — русскоговорящее сообществo
Кирилл
Почему, чтобы мувануть значение внутри Arc<Mutex<...>> мне всё равно нужно, чтобы оно было Send?
Потому что ты перемещаешь его в другой тред. У тебя объект может быть привязан к какому-нибудь thread-local контексту, например. В таком случае никакие мьютексы и Arc'и не помогают.
источник

Э

Эрик in Rust — русскоговорящее сообществo
Кирилл
Почему, чтобы мувануть значение внутри Arc<Mutex<...>> мне всё равно нужно, чтобы оно было Send?
Потому что ты туда мог запихать какой-нибудь указатель на локальную стековую переменную.
источник

YT

Yauheni Tsiarokhin in Rust — русскоговорящее сообществo
добрый день
подскажите пожалуйста почему закомменченный вариант не работает

            emitter: (emitter_id as u16).into(),
           // emitter: emitter_id.try_into()?,

emitter_id имеет тип u64

закомменнченный вариант жалуется что для типа в который я хочу это превратить нет реализации From<u64> но есть для From<u16> в чем тогда смысл try_into?
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
возможно try_into это когда ты 500 хочешь в u8 загнать, но это не точно
источник

Э

Эрик in Rust — русскоговорящее сообществo
Yauheni Tsiarokhin
добрый день
подскажите пожалуйста почему закомменченный вариант не работает

            emitter: (emitter_id as u16).into(),
           // emitter: emitter_id.try_into()?,

emitter_id имеет тип u64

закомменнченный вариант жалуется что для типа в который я хочу это превратить нет реализации From<u64> но есть для From<u16> в чем тогда смысл try_into?
А у emitter тип какой?
источник

Э

Эрик in Rust — русскоговорящее сообществo
И что возвращает функция? Может у тебя ? не может ошибку try_into превратить в возвращаемую ошибку?
источник

YT

Yauheni Tsiarokhin in Rust — русскоговорящее сообществo
Эрик
А у emitter тип какой?
структура с одним полем u16
источник

Э

Эрик in Rust — русскоговорящее сообществo
Yauheni Tsiarokhin
структура с одним полем u16
А для неё есть TryFrom<u64> имплементация?
источник

YT

Yauheni Tsiarokhin in Rust — русскоговорящее сообществo
Эрик
А для неё есть TryFrom<u64> имплементация?
нет
видимо в этом и проблема
источник

Э

Эрик in Rust — русскоговорящее сообществo
Если нет, то делаешь
emitter: { let little: u16 = emitter_id.try_into()?; little.into() },
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
это не в эмиттер прилетит резалт?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Julian =) Coffee
это не в эмиттер прилетит резалт?
На типы посмотри.
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
Я не про типы
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
Я просто как-то не подумал, что вопросик только на внешнюю функцию работает, а не на скоупы.
источник

YT

Yauheni Tsiarokhin in Rust — русскоговорящее сообществo
Эрик
Если нет, то делаешь
emitter: { let little: u16 = emitter_id.try_into()?; little.into() },
ладно наверное с as оставлю
и так сойдет
источник

Э

Эрик in Rust — русскоговорящее сообществo
Yauheni Tsiarokhin
ладно наверное с as оставлю
и так сойдет
А если emitter_id выдаст больше u16::MAX?
источник

Э

Эрик in Rust — русскоговорящее сообществo
as транкейтит.
источник

JC

Julian =) Coffee in Rust — русскоговорящее сообществo
всмысле будет u16::MAX?
источник