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)?
В плане, автоматически считать, что inherent method .is_null() используется для реализации метода трейта NullableToResult::is_null?
жаль, что через where нельзя описать :\
Как ты это себе представляешь?
В виде имени и сигнатуры функции, далее бы уже компилятор приверял, исходник обычно доступен, там где нет - можно было бы использовать атрибуты и прочее
Ты хочешь структурные трейты Их нет и не будет, потому что их можно реализовать случайно и это зло И ещё потому что два вида трейтов в языке это много
Странная логика, учитывая, что можно ошибиться во множественной однотипной реализации, да и макросами натворить дел
напиши дерайв
Обсуждают сегодня