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

Привет! есть-ли возможность реализовать что-то типа: trait A {

type X: B;
}

trait B {
}

static STATE: A = Aimpl::new();


https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=93285bb6dacd5f3f3adde79c9a103525

16 ответов

12 просмотров

: A это то же самое, что и :dyn A, но безразмерное значение вот так хранить нельзя

Проблема как минимум с тем, что new это не константная функция

Tux- Автор вопроса
Mikail Bagishov
Проблема как минимум с тем, что new это не констан...

я вот так частично решил, но вот с ассоциированным типом никак разобраться не могу https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=19e5559da925fabd7baabbbb0b8c694b

Tux
я вот так частично решил, но вот с ассоциированным...

Так под каждый вариант ассоциированного типа нужно по static константе создавать получается?

Tux- Автор вопроса
Yevhen Kazmin
Так под каждый вариант ассоциированного типа нужно...

да, это синглтон в .so библиотеке. а трейт нужен для комфортности разработки

Tux
да, это синглтон в .so библиотеке. а трейт нужен д...

https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=b966e61332706ae2ac59f0b58420bd99

Tux
да, это синглтон в .so библиотеке. а трейт нужен д...

В чем комфорт? Трейты нужны если у тебя >1 реализации

Tux- Автор вопроса
Αλεχ Zhukovsky
В чем комфорт? Трейты нужны если у тебя >1 реализа...

так и есть: sdk предполагает реализацию трейта, в контакте каждой подключаемой либы есть только один синглтон, но в целом это универсальный интерфейс для взаимодействия с базовым процессом

Tux- Автор вопроса
Yevhen Kazmin
https://play.rust-lang.org/?version=stable&mode=de...

спасибо большое! попробую этот вариант!)

Yevhen Kazmin
https://play.rust-lang.org/?version=stable&mode=de...

UB при многопоточном использовании. Запускать с мири https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=196d71080c34a3ee14b43e7482b0dc9d

red75prime
UB при многопоточном использовании. Запускать с ми...

да, не спорю, не использовал раст в многопоточных задачах, поэтому опыта написать правильно нету, сори

Tux- Автор вопроса
red75prime
UB при многопоточном использовании. Запускать с ми...

там только read ссылки в монопотоке будут использоваться, но на всякий случай можно в rwlock обернуть статик

Tux
там только read ссылки в монопотоке будут использо...

Для таких случаев есть once_cell: https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=54cbc9343e0bd2088c40dcaf8ee31137 Miri - виртуальная машина, которая проверяет наличие некоторых UB. Есть на плейграунде. Справа - Tools > Miri

Tux- Автор вопроса
red75prime
Для таких случаев есть once_cell: https://play.rus...

я для инициализации его и использую)

Tux- Автор вопроса

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

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

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
3
Карта сайта