Size: a a a

2021 May 05

П

Пух in rust_offtopic
Оно тебе надо? Тогда доёбуй)
источник

AN

Alex Noname in rust_offtopic
Кароче не понимаю чем тебя не устраивает вариант с любым из макросов, который имплементируют трейты так или иначе.
Вот ты создал Hlist![a,b,c] - он заимплементировал трейты через специализацию допустим или через любую херню что мы обсуждали.
Cоздал manual_impl![a,b,c] на нем заимплементированы те же трейты. Но с меньшим мозго дрочем или без найтли.

Единственный плюс первого подхода, что Hlist![a,b,c] можно расширять до Hlist![a,b,c,d] и он будет автоматом подхватывать новые имплементации.
Но зачем это надо если твои расширения включаются один раз? Т.е. расширять ничего не надо.

Есть ещё вариант что у тебя допустим сначала собирается Hlist![x,y,z] каким то кодом, а потом ты делаешь init() и используешь его не меняя.
Это оправдано в С++ когда ты можешь использовать любой cписок в функции вида f(auto hlist) и он упадет в компиляции потом.
Но в расте у тебя будет все равно f(hlist) where hlist: x + y + z. Поэтому тебе все равно нужно все это перечислять. Соответственно из ручной работы в варианте manual_impl! только собрать все эти x + y + z в одном месте самому.

Ну окей есть вариант что ты делаешь какие то трейт алисы которые хотят целую пачку xs: x1 + x2 + ... + x10. И ещё есть какие то методы которые делают вот вместо генерации просто Hlist![x, y, z] тоже какие то пачки расширений добавляют в Hlist[...] за раз. Тогда можно сказать что собирать всё что нужно в одном месте пользователю проблематично. В таком случае С++ подход или специализация чуток выигрывают на писанине.
Но опять же что то можно придумать для групп фич, какую то отдельную структуру Group<Hlist![]> и уже ее хранить.
источник

О

Одесский виртуальный... in rust_offtopic
скорее всего ты прав и мне проще все макросом сделать, но мне сейчас нужно себя переубедить, что макрос это не зло
источник

П

Пух in rust_offtopic
Вы же двое тут с hlist'ами возились, размножаетесь?:/
источник

KR

Kai Ren in rust_offtopic
копродактятся
источник

AN

Alex Noname in rust_offtopic
от возни с шлистами случается раздвоение личности. только никому не говори.
источник

П

Пух in rust_offtopic
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Какой хороший эпитет означающий NotDeleted?
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
Existing/Available - все не то чет
источник

AN

Alex Noname in rust_offtopic
Retained preserved
источник

AN

Alex Noname in rust_offtopic
Kept
источник

AN

Alex Noname in rust_offtopic
Cложно сделать перевод без контекста. А с контекстом ещё сложнее 😅
источник

r

red75prime in rust_offtopic
withheld
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
супер редкая ерунда
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
не думаю что стоит этот вараинт брать
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
я пока оставил Existing
источник

ΑZ

Αλεχ Zhukovsky in rust_offtopic
но такое
источник

EG

Emmanuel Goldstein in rust_offtopic
У тебя интерфейс для вывода на экран и вывода в файл одинаковый
источник

EG

Emmanuel Goldstein in rust_offtopic
Что в Python (file-like object), что в Rust (io::Write)
источник

EG

Emmanuel Goldstein in rust_offtopic
Соответственно, если у тебя вывод на экран не умеет справляться с не-UTF-8 кодировкой, то всё идёт по пизде
источник