Size: a a a

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

2020 October 02

в🧇

вафель 🧇 in Rust — русскоговорящее сообществo
Он должен быть за ссылкой, а там Bytes
источник

f

folex in Rust — русскоговорящее сообществo
Key::A::ref_cast(bytes)
источник

Э

Эрик in Rust — русскоговорящее сообществo
folex
ну я б с радостью тег тоже указал
Явный дискриминант + union ?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Хотя транспарю не повесишь,
источник

Э

Эрик in Rust — русскоговорящее сообществo
Ты описание-то читал?
источник

Э

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

f

folex in Rust — русскоговорящее сообществo
Мне просто обидно делать вот так
let bytes = ...;
hash_map.remove(&Key::A(bytes.clone()))
источник

f

folex in Rust — русскоговорящее сообществo
Эрик
Руками делай, руками.
А можно как-то руками без клонирования?
источник

Э

Эрик in Rust — русскоговорящее сообществo
folex
А можно как-то руками без клонирования?
Cow<>
источник

f

folex in Rust — русскоговорящее сообществo
HashMap<Cow<Key>, ...> ?
источник

f

folex in Rust — русскоговорящее сообществo
а,
enum Key { A(Cow<Bytes>), ... }

?
источник

Э

Эрик in Rust — русскоговорящее сообществo
Хотя Bytes же это просто Arc, там клонирование только инкрементит один атомик.
источник

f

folex in Rust — русскоговорящее сообществo
ну у меня там не Bytes, я просто слово написал
источник

Э

Эрик in Rust — русскоговорящее сообществo
folex
а,
enum Key { A(Cow<Bytes>), ... }

?
Cow<str>.
источник

f

folex in Rust — русскоговорящее сообществo
у меня там всякое может быть, почти что угодно что имплементит Hash
источник

Э

Эрик in Rust — русскоговорящее сообществo
А если у тебя не Bytes, а [u8], то делаешь Cow<[u8]>
источник

f

folex in Rust — русскоговорящее сообществo
угу, понял. У меня там в основном всякие структуры, которые приходят извне. Попробую с Cow
источник

Э

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

f

folex in Rust — русскоговорящее сообществo
Ага, но теперь закономерно везде вылезают лайфтаймы. Мхм, мб у меня получится сделать
struct Key(Vec<u8>)
impl From<String> for Key { ... }
impl From<SomethingUtterlyElse> for Key { ... }
источник

Э

Эрик in Rust — русскоговорящее сообществo
folex
Ага, но теперь закономерно везде вылезают лайфтаймы. Мхм, мб у меня получится сделать
struct Key(Vec<u8>)
impl From<String> for Key { ... }
impl From<SomethingUtterlyElse> for Key { ... }
И клонировать вектор?
источник