Size: a a a

2020 August 07

Ct

Casual tears in rust_offtopic
TypeId это уже "обертка над u64"
источник

T1

Tony 123 in rust_offtopic
Casual tears
У тебя на руках u64, откуда ты &'static str достанешь, если не из таблички?
Так ало на уровне компилятора имя типа известно
источник

Ct

Casual tears in rust_offtopic
Tony 123
Магию на уровне компилятора вполне можно сделать
Нету магии.
источник

(L

(((Mike Lubinets))) in rust_offtopic
Слава
А, это и есть Полунин
Тебя сбила с толку смена ника?
источник

Ct

Casual tears in rust_offtopic
Tony 123
Так ало на уровне компилятора имя типа известно
На уровне компилятора не известно какое значение будет у данного u64.
источник

T1

Tony 123 in rust_offtopic
Casual tears
Нету магии.
источник

AZ

Alex Zhukovsky in rust_offtopic
Casual tears
Кажется никак. В type id просто u64 хранится, чтобы сделать то что ты хочешь надо в бинарь табличку u64 -> type as str впихнуть, что весьма дорого.
кстати идрис примерно так и делает
источник

T1

Tony 123 in rust_offtopic
Casual tears
На уровне компилятора не известно какое значение будет у данного u64.
Может быть известно
источник

С

Слава in rust_offtopic
(((Mike Lubinets)))
Тебя сбила с толку смена ника?
Я вижу знакомый юзерпик, но не помню предыдущего ника
источник

Ct

Casual tears in rust_offtopic
Это вообще не то, тут задача совершенно другая.
источник

T1

Tony 123 in rust_offtopic
Casual tears
Это вообще не то, тут задача совершенно другая.
Нет, это то
источник

Ct

Casual tears in rust_offtopic
Tony 123
Может быть известно
Не может быть, потому что оно в рантайме вычисляется.
источник

T1

Tony 123 in rust_offtopic
Блядь, чувак, конечно может быть, я компилятор сейчас и пишу
источник

AZ

Alex Zhukovsky in rust_offtopic
Tony 123
Можно вместо u64 хратить обёртку над u64, которая будет иметь функцию, которая будет возвращать &'static str
сделай trait MyDisplay и имплементь его для кого хочешь
источник

T1

Tony 123 in rust_offtopic
Ты этот u64 на уровне компилятора можешь генерировать
источник

T1

Tony 123 in rust_offtopic
Соответственно и знать тоже
источник

Ct

Casual tears in rust_offtopic
Tony 123
Соответственно и знать тоже
Так, а дальше что? Этот u64 пихается в структуру TypeId, которая куда-то там улетает
источник

Ct

Casual tears in rust_offtopic
потому оттуда, куда она улетело вызывается id.name()
источник

T1

Tony 123 in rust_offtopic
Casual tears
Так, а дальше что? Этот u64 пихается в структуру TypeId, которая куда-то там улетает
Нет, другая обёртка создается которая хранит ту функцию которую я указал
источник

Ct

Casual tears in rust_offtopic
Как компилятор в месте куда type id "прилетело" узнает какой там u64 положили?
источник