Skip to content
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

Move block crate into this repo #18

Merged
merged 127 commits into from
Sep 2, 2021
Merged

Move block crate into this repo #18

merged 127 commits into from
Sep 2, 2021

Conversation

madsmtm
Copy link
Owner

@madsmtm madsmtm commented Sep 2, 2021

I wasn't sure previously whether I wanted to do this in #1, but after seeing that I really want to add Encode stuff in it, it seemed like a good idea. This PR also adds those bounds and implementations, which fixes the objc_foundation/block feature!

(There had already been work on this in a dev_encode branch)

This also includes the fix for SSheldon/rust-block#8.

Instead of supplying an extern fn, a simpler native rust fn is supplied
and the BlockArguments trait is used to get an extern fn that wraps it.
Previous code was just assigning to an uninitialzed field, so the
compiler was dropping it; by changing this to a ptr::write the existing
value is no longer dropped.
The old behavior can be replicated by creating a custom closure with a
context and function.
SSheldon and others added 22 commits April 3, 2016 22:20
Platforms beside OSX and iOS will link to libBlocksRuntime.
When updating to current Rust, there is a warning for a change
in the output due to the change in Markdown implementations.
The `gcc` crate has been replaced with `cc`. Additionally, the
`gcc:Config` was renamed to `gcc::Build`. This updates both of
those.

Commit taken from SSheldon/rust-block#8
This also adds A: EncodeArguments and R: Encode bounds on blocks, which is a good idea to require given that the types are being sent to and from Objective-C!
It's also actually nicer to have examples that use the current crate!
@madsmtm madsmtm added bug Something isn't working documentation Improvements or additions to documentation enhancement New feature or request labels Sep 2, 2021
@madsmtm madsmtm merged commit 9480a6f into master Sep 2, 2021
@madsmtm madsmtm deleted the objc_block branch September 2, 2021 14:57
@madsmtm madsmtm mentioned this pull request Sep 5, 2021
80 tasks
@madsmtm madsmtm mentioned this pull request Sep 3, 2023
11 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants