Size: a a a

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

2020 April 04

АГ

Алексей Герасимов in Rust — русскоговорящее сообществo
Кто-нибудь может объяснить почему Eq не дженерик? почему он требует чтобы Rhs = Self? И как в таком случае его реализовывать для дженерик типов в которых нужно сравнивать только часть полей, а остальные могут быть разных типов?
источник

В

Вафель in Rust — русскоговорящее сообществo
Алексей Герасимов
Кто-нибудь может объяснить почему Eq не дженерик? почему он требует чтобы Rhs = Self? И как в таком случае его реализовывать для дженерик типов в которых нужно сравнивать только часть полей, а остальные могут быть разных типов?
Он не требует Rhs = Self, это дефолт
источник

АГ

Алексей Герасимов in Rust — русскоговорящее сообществo
источник

АГ

Алексей Герасимов in Rust — русскоговорящее сообществo
Вафель
Он не требует Rhs = Self, это дефолт
^
источник

В

Вафель in Rust — русскоговорящее сообществo
А
источник

В

Вафель in Rust — русскоговорящее сообществo
Алексей Герасимов
Кто-нибудь может объяснить почему Eq не дженерик? почему он требует чтобы Rhs = Self? И как в таком случае его реализовывать для дженерик типов в которых нужно сравнивать только часть полей, а остальные могут быть разных типов?
Может из-за требования что a == a?
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
И транзитивности
источник

В

Вафель in Rust — русскоговорящее сообществo
Mikail Bagishov
И транзитивности
транзитивность и у PartialEq есть
источник

MB

Mikail Bagishov in Rust — русскоговорящее сообществo
Если
let a1: A;
let a2: A;
let b: B;
a1 == b;
a2 == b;

то a1 == a2;
источник

АГ

Алексей Герасимов in Rust — русскоговорящее сообществo
Вафель
Может из-за требования что a == a?
не понимаю как дженеричность Eq могла бы этому помешать
источник

В

Вафель in Rust — русскоговорящее сообществo
Алексей Герасимов
не понимаю как дженеричность Eq могла бы этому помешать
Eq<NotSelf> не позволяет сравнить значение с самим собой
источник

АГ

Алексей Герасимов in Rust — русскоговорящее сообществo
а, кажется понял, типа если A<B> сравнимо с D и A<С> сравнимо с D, то обязательно A<B> должно быть сравнимо с A<C>, что не факт
источник

f

folex in Rust — русскоговорящее сообществo
А есть какой-нибудь способ посмотреть дерево зависимостей трейтов?

Например у меня трейт A требует Default от моей структуры, у трейта A дефолта требует трейт B, и так на глубину в 5-7 трейтов/структур

Есть ли способ обозреть всю цепочку, не изучая при этом досконально весь код?
источник

В

Вафель in Rust — русскоговорящее сообществo
Где у тебя такая длинная цепочка образовалась? O_o
источник

d

diabolo in Rust — русскоговорящее сообществo
Eto Demerzel
А где-нибудь ещё, кроме VS Code, такой функционал есть?
в имаксе
источник

f

folex in Rust — русскоговорящее сообществo
Вафель
Где у тебя такая длинная цепочка образовалась? O_o
libp2p ._.
источник

AL

Andrey @ozkriff Lesnikov in Rust — русскоговорящее сообществo
источник

Э

Эрик in Rust — русскоговорящее сообществo
Почему BufRead::lines() делает новую строку на каждый результат вместо Cow<str>?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Можно было бы просто давать ссылку на буфер внутри, если конец буфера в середине строки не появился.
источник

АВ

Андрей Власов in Rust — русскоговорящее сообществo
Эрик
Почему BufRead::lines() делает новую строку на каждый результат вместо Cow<str>?
Тогда у метода next должен был быть лайфтайм, а у трейта итератор его нет
источник