Mads Marquart
Mads Marquart
Autoreleasing objects using `rc::autoreleasepool` is unsound because we cannot ensure that the lifetime from an outer pool is not used inside an inner pool. To help mitigate that, we provide...
Part of https://github.com/madsmtm/objc2/issues/32. Add a tutorial to `icrate`, to have a place where we can introduce new concepts like `Id` to the user. A "howto" on converting Objective-C code on...
Builds upon https://github.com/madsmtm/objc2/pull/516. We now use `&(impl MyProtocol + Message)` instead of `&ProtocolObject` as parameters to functions, this allows users to pass in their objects to these functions much more...
List of improvements that would bring us closer to feature-parity with Swift: - [ ] The ability to safely call superclass methods inside `declare_class!` (though it's probably not safe to...
Maybe we should reconsider whether it makes sense to keep those to separate? It would make it much easier for the user if they were merged. An argument for keeping...
Add the equivalent of https://github.com/madsmtm/objc2/pull/276 and https://github.com/madsmtm/objc2/pull/277 to `declare_class!`. Effectively the implementation is: ```rust // Result -> Bool match res { Ok(()) => Bool::YES, Err(err) => { // Intentionally not...
`NSCopying` [states](https://developer.apple.com/documentation/foundation/nscopying) that there are a few different ways to implement it. One of them is by invoking `[super copy]` and setting the instance variables afterwards - this should somehow...
This more closely matches the terminology used in the Rust reference. E.g. in [the reference docs on associated items](https://doc.rust-lang.org/reference/items/associated-items.html), these two words are used with different meanings: > Every associated...
Implementing `ClassType` in `declare_class!` is `unsafe` because we need the user to uphold a few safety guarantees, and that was just the most convenient place to put the `unsafe` keyword....
Our main thread support in `MainThreadMarker` and `MainThreadBound` is still a little akward to use, and is missing some functionality that would be nice. TODO: - [x] Automatically add marker...