172 похожих чатов

Так здарова ребята а как люди делают приколы с чем-то подобным

как DerefMut
то есть DerefMut: Deref, а Deref в свою очередь имеет type Target, как имея знание, что T: DerefMut достать Target?

<T as Deref>::Target ок
<T as DerefMut>::Target - не ок

8 ответов

4 просмотра
ева-бака 🇷🇺 Автор вопроса

https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=4af80efaec8313b158fde2744a86fa57 типа такого, чтобы яснее стало

ева бака 🇷🇺
https://play.rust-lang.org/?version=stable&mode=de...

Если Т реализует DerefMut, то он реализует и Deref, так что пишем <T as Deref>::Target.

ева-бака 🇷🇺 Автор вопроса
red75prime
Если Т реализует DerefMut, то он реализует и Deref...

это все так и хорошо, но мне как раз нужно использование примерно такое, как в плейграунде а значит, я не могу использовать <T as Deref>, потому что я не смогу убедиться в верности, что T: DerefMut тут либо какой-то дополнительный прикол делать, чтобы доказать я хочу это в макросе делать для кодогенерации, чтобы пользователи не подсунули какую-то левую херню трейт DerefMut: Deref я в качестве примера привел, сейчас у меня подобная штука в принципе, я вижу два решения: 1. завести свой Target в DerefMut 2. оставить так же, но с доп проверкой типа struct TestMe<T: DerefMut>(marker ...) const _: TestMe<MyType> = TestMe ...; type MyTypeTarget = <MyType as Deref>::Target;

ева бака 🇷🇺
это все так и хорошо, но мне как раз нужно использ...

яб использовал Deref::Target и просто заюзал static_assertions::assert_impl_one! для условия

ева-бака 🇷🇺 Автор вопроса
kitsu
яб использовал Deref::Target и просто заюзал stati...

звучит хайпово я конечно не эксперт в этой теме, но странно, что раст в этом месте резко тупеет и не может понять, что если тип имплементирует один трейт, то и второй умеет тоже в условной функции с <T: DerefMut> я вполне могу выковырить T::Target

ева бака 🇷🇺
звучит хайпово я конечно не эксперт в этой теме, н...

trait MyTrait { type Target; } impl<T: DerefMut> T for MyTrait { type Target = u32; } какой теперь Target выбрать?

ева бака 🇷🇺
звучит хайпово я конечно не эксперт в этой теме, н...

pub trait DerefMut: Deref { fn deref_mut(&mut self) -> &mut Self::Target; } он и сам Deref::Target использует если что

ева бака 🇷🇺
это все так и хорошо, но мне как раз нужно использ...

если у тебя конкретный Me, то какая разница, если не конкретный - потребуй от него T: DerefMut но обращайся как <T as Deref>::Target

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

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

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
я имею в виду официально интегрированный в телегу? в том плане что не сливает переписку с пользователем?
Andrey
9
Кто-нибудь решал проблему с автоматическим скроллингом к выбранной ячейке в TDBGrid в Lazarus? Проблема в том, что есть допустим 3 столбца, третий столбец виден наполовину, вк...
Дмитрий Логинов
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Чорт! Чорт! Чорт! Стала ставить через GetIt (написано же, что ручками не рекомендуется) Сломалось на дублировании моей TSkLabel. Чтож мне ее по всем проектам переименовывать в...
Катерина Свиридова
7
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Карта сайта