Std::Marker::PhantomData - это для тех кому кажется что они мало

букавок в коде напечатали? какая практическая польза?

8 ответов

32 просмотра

https://doc.rust-lang.org/nomicon/phantom-data.html

Finflaex-Bastion Автор вопроса
Iztleu Darkhan
https://doc.rust-lang.org/nomicon/phantom-data.htm...

дак оттуда и скопировал, но там нет ответа зачем - просто констатация факта, что такая фигня есть

Мне один раз пригодилось, когда я хотел сделать generic структуру, но не хотел хранить экземпляр этого дженерика

Finflaex-Bastion Автор вопроса
Алексей
Мне один раз пригодилось, когда я хотел сделать ge...

мне кажется это можно было бы решить другим способом, можно пример? никак не могу придумать практический способ это использовать

Finflaex Bastion
мне кажется это можно было бы решить другим способ...

Variance задавать у дженерика, соответствующая тема есть в номиконе

Finflaex Bastion
мне кажется это можно было бы решить другим способ...

struct Bus<T> where T: IntegrityCheck { pin1: Pin, pin2: Pin, t: PhantomData<T>, } Можно было в каждой функции писать этот дженерик, но, как мне кажется, это не очень удобно Я так понял, PhantomData это как подсказка для компилятора, и по сути не имеет оверхеда

Finflaex Bastion
дак оттуда и скопировал, но там нет ответа зачем -...

Там же пример есть: struct Iter<'a, T: 'a> { ptr: *const T, end: *const T, } В данном коде ты будешь ожидать что твой Т будет жить столько же сколько и Iter. Но это не так. Поэтому мы помечаем его так struct Iter<'a, T: 'a> { ptr: *const T, end: *const T, _marker: marker::PhantomData<&'a T>, } Время жизни будет ограничено, и ваш итератор будет ковариантным относительно 'aи T

Finflaex Bastion
дак оттуда и скопировал, но там нет ответа зачем -...

Чтобы добавить, например, лайфтайм дженерики структуре, содержащий сырые указатели

Похожие вопросы

Обсуждают сегодня

Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
7
Всем привет. Не понимаю, в чём тут шутка юмора. Убирается только разрешение на send_messages. А send_media_messages остаётся. Как сделать, чтобы оба убирались? await b...
Alexander
2
Есть тут кто занимается разработкой серваков майна? Или знакомые
meow *
3
'frakturBold' => ['𝖆', '𝖇', '𝖈', '𝖉', '𝖊', '𝖋', '𝖌', '𝖍', '𝖎', '𝖏', '𝖐', '𝖑', '𝖒', '𝖓', '𝖔', '𝖕', '𝖖', '𝖗', '𝖘', '𝖙', '𝖚', '𝖛', '𝖜', '𝖝', '𝖞', '𝖟', '𝕬', '𝕭', '𝕮', '𝕯'...
Roma
4
Есть ли лимиты на кол-во вебхук по домену? Стоит в данный момент 900+ ботов и бывает бот перестает отвечать (не приходят вебхуки) 🐒 Помогает только перезапуск
ᅠ [ Кому не ответил, дублируйте ]
11
а что делать если тебя убивают на картах?
Yarik yarik kyda ti lezesh
43
Товарищи, здравствуйте Подскажите, пожалуйста, может кто-нибудь сталкивался с такой задачей Через вебапку можно сканировать qr-код, а есть ли возможность считывать nfc?
Artem Stormageddon
8
Карта сайта