-
Notifications
You must be signed in to change notification settings - Fork 523
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support closures as delegates #332
Comments
This might not be possible to do since conceptually we need to ensure methods which take delegates are generic over some type which is either a delegate which takes some type that implements |
Challenge accepted. 🤜 |
Given that passing a closure is by far the most common scenario, we could make that the default and provide a |
Closing this old issue - doesn't seem to be much demand for such API support. Let me know if you have thoughts to the contrary. 😊 |
Reopening as there's been some renewed interest in WinRT API support. |
Rust/WinRT doesn't yet automatically bind a lambda/closure to a delegate parameter. Today you need to create the delegate yourself. It looks something like this:
In the future you should be able to write simply:
The difficulty is in somehow specializing the
winrt::Param
generic for delegates to automatically create a WinRT delegate as needed while still supporting delegate objects for pass-through.Alternatively, we could just use
FnMut
as the generic param for delegates. That would probably provide the best experience in most cases, but would suffer from "over-wrapping" delegate objects that are merely being passed through.The text was updated successfully, but these errors were encountered: