You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've been quite focused on this project simply being "improve the safety of Objective-C in Rust", but @silvanshade recently proposed that we try to reach higher than just that, instead try going for "something that is (at least somewhat) competitive with Swift" (Swift interop is discussed in #524).
This required a bit of a mental shift for me, but ultimately, I think it is the right way to go about it. This change in mindset should help me realize that tooling, e.g. good rust-analyzer and debugger support, is really important, and we should spend effort on that not just in this project, but also in requesting changes to Rust to make it possible.
Some way to better declare categories - for example allows us to represent them as a trait, possibly as "inherent traits?"
Some way for the compiler to automatically convert Id<NSButton> to Id<NSView>, since calling Id::into_super (potentially many times) is quite cumbersome. Maybe the coerce unsized feature will do it for us?
I've been quite focused on this project simply being "improve the safety of Objective-C in Rust", but @silvanshade recently proposed that we try to reach higher than just that, instead try going for "something that is (at least somewhat) competitive with Swift" (Swift interop is discussed in #524).
This required a bit of a mental shift for me, but ultimately, I think it is the right way to go about it. This change in mindset should help me realize that tooling, e.g. good
rust-analyzerand debugger support, is really important, and we should spend effort on that not just in this project, but also in requesting changes to Rust to make it possible.A few subtasks:
header-translatorintobindgen#729.AllocatedandIdId<NSButton>toId<NSView>, since callingId::into_super(potentially many times) is quite cumbersome. Maybe the coerce unsized feature will do it for us?#[distributed_slice], as suggested by epage in their blog post about testing would be really nice for makingdeclare_class!cleaner.linkmestatics would work similar toexternstatics, in that you can't performconstoperations on them.#[distributed_slice]aka a method to enumerate tests rust-lang/testing-devex-team#3.Selwith each function, very similar to what Swift does.MainThreadMarker,AutoReleasePool<'p>and availability easier to use (contexts & capabilities)msg_send!/msg_send_id!/extern_methods.extern_methodssuch that error spans point to the definition of the method, instead of the macro invocation itself.constsupport to allow us to do Create blocks with BLOCK_HAS_SIGNATURE #442 and Generate&'static CStrfrom Encoding #70 without the user needing to write out the type themselves.class!andsel!macros: Tracking Issue fordarwin_objcrust-lang/rust#145496 / Tracking issue for thedefine_in_every_cgu_usedfeature rust-lang/rust#141339.header-translatorwork intobindgen.objc2support incbindgen.