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

Trait NullableToResult { #[inline]

fn is_null(&self) -> bool;
#[inline]
fn ok(self) -> ::windows::Result<Self> where Self: Sized {
if !self.is_null() {
Ok(self)
} else {
Err(::windows::HRESULT::from_thread().into())
}
}
}

impl NullableToResult for HINSTANCE {
#[inline]
fn is_null(&self) -> bool {
self.is_null()
}
}
Подскажите, возможно ли убрать переобъявление метода is_null, если треит актуален только для тех типов, которые уже у себя имеют is_null (или поле 0)?

7 ответов

27 просмотров

В плане, автоматически считать, что inherent method .is_null() используется для реализации метода трейта NullableToResult::is_null?

Yuriy Zymlex- Автор вопроса
Yuriy Zymlex
жаль, что через where нельзя описать :\

Как ты это себе представляешь?

Yuriy Zymlex- Автор вопроса
Max Силинг
Как ты это себе представляешь?

В виде имени и сигнатуры функции, далее бы уже компилятор приверял, исходник обычно доступен, там где нет - можно было бы использовать атрибуты и прочее

Yuriy Zymlex
В виде имени и сигнатуры функции, далее бы уже ком...

Ты хочешь структурные трейты Их нет и не будет, потому что их можно реализовать случайно и это зло И ещё потому что два вида трейтов в языке это много

Yuriy Zymlex- Автор вопроса
Max Силинг
Ты хочешь структурные трейты Их нет и не будет, по...

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

напиши дерайв

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта